Was ein User-Agent-String ist
Jede Anfrage deines Browsers enthält einen User-Agent-Header: eine Textzeile, die dem Server sagt, welche Software anfragt. Websites nutzen ihn, um die passende Version einer Seite auszuliefern, um zu entscheiden, ob eine Funktion gefahrlos genutzt werden kann, um alte Browser mit bekannten Sicherheitslücken auszusperren und um zu zählen, welche Browser ihre Besucher verwenden. Auch Suchmaschinen und KI-Crawler geben sich darüber zu erkennen – deshalb begegnet dir der Begriff „User-Agent“ auch, wenn du eine robots.txt-Datei schreibst.
Oben siehst du deinen User-Agent genau so, wie er angekommen ist, darunter denselben String zerlegt in Browser, Rendering-Engine, Betriebssystem und Gerätetyp. Außerdem ordnen wir den Client ein: ein normaler Webbrowser, ein Suchmaschinen-Crawler wie Googlebot, ein KI-Crawler wie GPTBot oder ClaudeBot, ein KI-Assistent, der eine Seite für jemanden abruft, ein Bot für Link-Vorschauen, ein Kommandozeilen-Tool oder eine HTTP-Bibliothek.
So nutzt du die Seite
- Öffne die Seite in dem Browser, auf dem Gerät oder in der Automatisierungssitzung, die du prüfen willst. Die Zeile oben ist der
User-Agent-Header, wie unser Server ihn mit dieser Anfrage empfangen hat. - Klicke auf User-Agent kopieren, um den exakten String zu kopieren – nichts gekürzt, nichts abgetippt.
- Unter Aus dem Header ausgelesen stehen Browser, Engine, Betriebssystem, Gerät, CPU und Client-Typ, die aus diesem String gewonnen wurden.
- Vergleiche das mit Was JavaScript meldet. Stimmt
navigator.userAgentmit dem Header überein, sagt die Zeile das; weicht der Wert ab, wird er vollständig angezeigt. Die Zeilen für Client Hints füllen sich nur in Chromium-Browsern über HTTPS. - Lies Passt das zusammen? Dort wird der Header mit JavaScript verglichen, das Betriebssystem mit der Plattform aus den Client Hints, und geprüft, ob das Automatisierungs-Flag gesetzt ist.
Testest du eine Überschreibung in den Entwicklertools, lade die Seite nach der Änderung neu, damit der Header erneut gesendet wird. Dann siehst du, welche Zeilen sich geändert haben und welche weiterhin deinen echten Browser beschreiben.
Anwendungsfälle
- Einen Fehlerbericht schreiben. Füge den kopierten String ein, damit die Entwickler den genauen Browser, die Version und die Plattform sehen statt eines vagen neuestes Chrome unter Windows.
- Einen User-Agent-Switcher testen. Schalte die Erweiterung ein und lade neu. Meldet Passt das zusammen? einen Widerspruch zwischen Header und JavaScript oder Client Hints, durchschauen auch Websites die Tarnung.
- Einen automatisierten Browser prüfen. Rufe die Seite aus einer Selenium- oder Playwright-Sitzung auf, um zu sehen, welchen String sie tatsächlich sendet und ob sie sich über
navigator.webdriverzu erkennen gibt. - Die Desktop-Ansicht auf dem iPad erklären. Safari unter iPadOS fordert standardmäßig Desktop-Websites an und sendet einen Mac-User-Agent, deshalb steht beim erkannten Betriebssystem macOS. Schaltest du in den Safari-Einstellungen Desktop-Website anfordern aus, kommt der Tablet-String zurück.
- Eine Server-Regel schreiben. Bevor du Browser in einer Weiterleitung, einer Firewall-Regel oder einem Analytics-Filter abgleichst, sammle echte Strings der Browser, auf die es dir ankommt, und teste das Muster daran.
So liest du einen User-Agent-String
Ein typischer String von Chrome auf dem Desktop sieht so aus:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
Mozilla/5.0– ein Kompatibilitäts-Token, das jeder moderne Browser sendet. Mit Firefox hat es nichts zu tun.(Windows NT 10.0; Win64; x64)– die Plattform: Betriebssystem und CPU-Architektur. Auch Windows 11 meldet hier10.0.AppleWebKit/537.36 (KHTML, like Gecko)– noch mehr Kompatibilitätsgeschichte: Chromes Engine Blink ist ein Fork von WebKit, und WebKit wiederum ein Fork von KHTML.Chrome/141.0.0.0– der tatsächliche Browser und seine Hauptversion. Die Nullen sind Absicht: Chrome verbirgt die Unterversion.Safari/537.36– noch ein Kompatibilitäts-Token.
Firefox verwendet Gecko/20100101 Firefox/141.0, Safari endet mit Version/18.0 Safari/605.1.15, und Edge hängt Edg/141.0.0.0 an den Chrome-String an. Mobile Browser ergänzen Mobile, und fast alle Browser auf dem iPhone geben sich im Kern als Safari aus, weil sie auf Apples Engine WebKit laufen (außerhalb der EU schreibt iOS das vor).
Client Hints: der Nachfolger des User-Agents
Chromium-Browser (Chrome, Edge, Opera, Brave, Samsung Internet) haben den klassischen String größtenteils eingefroren und die Details in die User-Agent Client Hints verlagert. Standardmäßig senden sie drei kleine Header – Sec-CH-UA mit Marken und Hauptversionen, Sec-CH-UA-Mobile und Sec-CH-UA-Platform –, und eine Website kann mehr anfordern, etwa die vollständige Version, die CPU-Architektur oder das Handymodell. Seiten können dieselben Daten über navigator.userAgentData lesen. Firefox und Safari unterstützen Client Hints nicht. Client Hints gibt es nur auf HTTPS-Seiten.
Den User-Agent ändern
In jedem Browser können die Entwicklertools den User-Agent zum Testen überschreiben, und Erweiterungen können das dauerhaft tun. Das ist praktisch, um zu prüfen, wie sich eine Website auf einem anderen Gerät verhält, taugt aber wenig zum Schutz der Privatsphäre. Ein geänderter Header ändert weder navigator.userAgentData noch den TLS-Handshake, die Liste der Schriftarten oder die Art, wie dein Browser ein Canvas rendert – die Tarnung widerspricht also allem anderen. Das Feld Passt das zusammen? oben führt dieselben Vergleiche durch wie ein Skript zur Bot-Erkennung: Header gegen JavaScript und User-Agent gegen Client Hints.
Den User-Agent eines Skripts oder Tools prüfen
Kommandozeilen-Tools und Bibliotheken senden eigene User-Agents – curl/8.x, python-requests/2.x, Go-http-client/1.1 –, und viele Websites blockieren diese standardmäßig. Um genau zu sehen, was dein Tool sendet, lass es vom selben Rechner aus unseren Endpunkt aufrufen:
curl "iseeu.cc/ua?format=text"
curl iseeu.cc/ua # zerlegt, als JSON
python -c "import requests; print(requests.get('https://iseeu.cc/ua').json())"
KI-Agenten können das Tool parse_ua auf unserem MCP-Server aufrufen, um beliebige User-Agent-Strings zu zerlegen – auch Crawler-Strings, die sie in Logs finden.
Häufige Fragen
Was ist ein User-Agent?
Ein User-Agent ist das Programm, das in deinem Auftrag eine Anfrage im Web stellt, meist dein Browser. Sein User-Agent-Header ist eine Textzeile, die Browser, Version, Rendering-Engine und Betriebssystem nennt.
Warum beginnt der User-Agent jedes Browsers mit Mozilla/5.0?
Aus Gründen der Kompatibilität. In den 1990er-Jahren lieferten Websites bessere Seiten an Netscape aus, dessen Codename Mozilla war, also übernahmen andere Browser das Präfix, um diese Seiten ebenfalls zu bekommen. Alle großen Browser behalten es bis heute bei.
Kann ich meinen User-Agent ändern?
Ja. Die Entwicklertools des Browsers und Erweiterungen können ihn überschreiben. Client Hints, JavaScript-Eigenschaften und der TLS-Handshake beschreiben aber weiterhin deinen echten Browser, deshalb fällt ein geänderter User-Agent leicht auf.
Was sind User-Agent Client Hints?
Ein neuerer Mechanismus in Chromium-Browsern, der standardmäßig nur eine kurze Angabe zu Marke und Plattform sendet und Websites Details wie die genaue Version, die Architektur oder das Gerätemodell anfordern lässt.
Warum zeigt mein User-Agent eine alte Version des Betriebssystems, etwa Windows 10 statt 11?
Browser frieren Teile des Strings ein, um Fingerprinting zu erschweren. Chrome meldet auch unter Windows 11 Windows NT 10.0 und eine feste macOS-Version und füllt die Unterversionsnummern mit Nullen auf.
Wie prüfe ich den User-Agent von curl oder einem Skript?
Führe curl iseeu.cc/ua?format=text auf demselben Rechner oder mit demselben Tool aus. Es gibt den User-Agent-Header genau so aus, wie unser Server ihn empfangen hat.
Die Auswertung von User-Agents beruht auf Mustern und kann neue oder ungewöhnliche Browser falsch einordnen. Die Bot-Einordnung spiegelt wider, was ein Client zu sein behauptet; jeder kann einen beliebigen User-Agent senden.