User-Agent
Verwendung
Clients senden User-Agent in jeder Anfrage mit, um dem Server die Anwendung, das Betriebssystem und die Rendering-Engine mitzuteilen. Server nutzen diese Informationen für Content Negotiation, Analysen und Kompatibilitätsanpassungen.
Der Wert folgt einem strukturierten Format aus Produkt-Token. Jedes Token besteht aus einem Produktnamen und einer optionalen Version, gefolgt von optionalen Kommentaren in Klammern. Mehrere Token erscheinen durch Leerzeichen getrennt.
User-Agent: <product>/<version> (<comment>) <product>/<version>
In der Praxis sind die User-Agent-Zeichenketten von Browsern aufgrund historischer Kompatibilitätsmuster lang und komplex geworden. Die meisten Browser führen aus Altlastgründen Mozilla/5.0 als erstes Token auf, gefolgt von Plattformdetails in einem Kommentar und anschließend Engine- und Browser-Token.
Server, die abhängig von den User-Agent-Werten unterschiedliche Inhalte ausliefern, setzen eine Form der Content Negotiation um. Suchmaschinen-Crawler weisen sich über diesen Header aus, sodass Server crawler-spezifische Logik anwenden können. Systeme zur Bot-Erkennung analysieren User-Agent-Muster, um automatisierten Datenverkehr von menschlichen Besuchern zu unterscheiden.
Die Header-Familie Sec-CH-UA bietet eine strukturierte Alternative zur User-Agent-Zeichenkette. User-Agent Client Hints liefern dieselben Informationen in einem bereits geparsten Format mit geringer Entropie. Der Browser sendet standardmäßig einen minimalen Satz an Hints, und der Server fordert über den Antwort-Header Accept-CH zusätzliche Details an. Das verkleinert die Angriffsfläche für passives Fingerprinting im Vergleich zu einer vollständigen User-Agent-Zeichenkette.
product
Eine Produktkennung für die Client-Software. Konventionsgemäß wird das wichtigste Produkt zuerst aufgeführt.
version
Eine Versionszeichenkette, die zum vorangehenden Produkt-Token gehört und durch einen Schrägstrich abgetrennt wird.
comment
Zusätzliche Angaben in Klammern, die typischerweise das Betriebssystem, das Gerät oder die Plattform beschreiben. Kommentare erscheinen nach einem product/version-Paar.
Beispiel
Ein Desktop-Browser sendet eine User-Agent-Zeichenkette mit Plattform, Rendering-Engine und Browser-Version. Das Präfix Mozilla/5.0 ist ein historisches Relikt, das in allen modernen Browsern vorhanden ist.
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.0.0.0 Safari/537.36
Ein mobiler Browser nimmt Geräte- und Mobilplattform-Informationen in den Kommentarabschnitt auf.
User-Agent: Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.0.0.0 Mobile Safari/537.36
Die UA-Reduktion von Chrome friert die Minor-, Build- und Patch-Komponenten auf 0.0.0 ein. Die Hauptversion erhöht sich mit jedem Release.
Suchmaschinen-Crawler verwenden zur Identifikation unverwechselbare User-Agent-Werte. Der Kommentar enthält oft eine URL, die auf die Dokumentation zum Crawler verweist.
User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Bingbot verwendet eine stets aktuelle, Chromium-basierte UA-Zeichenkette. Die Versionskomponente W.X.Y.Z wird automatisch an das aktuelle Chrome-Release angepasst.
Desktop:
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/W.X.Y.Z Safari/537.36
Mobil:
User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
Kommandozeilenwerkzeuge und HTTP-Bibliotheken senden kürzere, einfachere Werte.
User-Agent: curl/8.4.0
Eigene API-Clients und Bots geben einen beschreibenden Produktnamen, eine Version und eine Kontakt-URL an:
User-Agent: MyBot/1.0 (+https://example.re/bot)
Datenschutz
Die User-Agent-Zeichenkette ist ein erheblicher Vektor für Browser-Fingerprinting. Die Kombination aus Browser, Version, Betriebssystem und Plattformdetails erzeugt eine nahezu eindeutige Kennung, die Tracking-Skripte ohne Cookies oder ausdrückliche Einwilligung ausnutzen.
Chromes Initiative zur User-Agent-Reduktion friert Teile der Zeichenkette ein und verlagert detaillierte Informationen in die Sec-CH-UA Client Hints, die eine ausdrückliche Zustimmung des Servers über Accept-CH erfordern. Damit verschiebt sich die Preisgabe detaillierter Client-Daten von passiver Offenlegung hin zu aktiver Aushandlung.
Server sollten sich bei Sicherheitsentscheidungen wie Authentifizierung oder Zugriffskontrolle nicht auf User-Agent verlassen. Clients kontrollieren den Wert und fälschen die Zeichenkette mühelos.