UA-Parser
User-Agent-Zeichenfolgen online analysieren und Browser, Betriebssystem und Geräteinformationen identifizieren
Analyseergebnisse
Was ist User-Agent?
Der User-Agent-Parser zerlegt einen User-Agent-String in verständliche Informationen wie Browser, Betriebssystem, Gerätetyp, Rendering-Engine und manchmal Bot- oder Client-Hinweise. Solche Strings werden in Logs, Analytics, Supportfällen, Kompatibilitätstests und Sicherheitsuntersuchungen genutzt, weil sie zeigen können, mit welchem Client eine Anfrage gestellt wurde. Die Daten sind jedoch nicht zuverlässig wie eine Identität: User Agents können gefälscht, gekürzt, von Datenschutzfunktionen verändert oder durch moderne Client-Hints ergänzt werden. Das Werkzeug hilft beim schnellen Lesen und Vergleichen, sollte aber nicht allein für Berechtigungen, Betrugserkennung oder kritische Geräteentscheidungen verwendet werden. Für echte Fehlersuche sollte das Ergebnis mit Berechtigungen, Browserumgebung, Netzwerkpfad und Geräte-/Serverstatus kombiniert werden.
So verwenden Sie es
Verwendung
- Fügen Sie den zu analysierenden User-Agent-String in das Eingabefeld ein
- Oder klicken Sie auf „Meinen UA analysieren“, um den UA Ihres aktuellen Browsers automatisch zu erkennen
- Die Analyseergebnisse werden unten mit Angaben zu Browser, System und Gerät angezeigt
- Klicken Sie auf „UA kopieren“, um den Original-UA-String zu kopieren
Analysebeschränkungen
- User-Agent-Strings können von modernen Browsern gefälscht, eingefroren oder gekürzt werden; behandeln Sie die Analyseergebnisse daher nur als Hinweise.
- Für Feature-Entscheidungen bevorzugen Sie nach Möglichkeit Capability Detection gegenüber der Prüfung des Browser-Namens.
Anwendungsfälle
Technisches Prinzip
Der User-Agent-Header ist in RFC 7231 §5.5.3 als Sequenz von Produkt-Tokens (Produkt/Version) und geklammerten Kommentaren definiert, doch in der Praxis sendet jeder moderne Browser eine Zeichenfolge, die mit dem literalen Token Mozilla/5.0 beginnt. Dieses Präfix reicht zurück bis 1993, als Seiten NCSA Mosaic durch Prüfung auf Mozilla erkannten; Netscape übernahm Mozilla, Internet Explorer 3 fügte es aus Kompatibilitätsgründen hinzu, und jeder Nachfolger (Safari, Chrome, Edge, Opera) hat die Lüge beibehalten. Es gibt keine formale Grammatik, die festlegt, wo das Betriebssystem steht, wohin die Engine-Version gehört oder welches Token gewinnt, wenn mehrere Browser sich gegenseitig aus Kompatibilitätsgründen aufführen — daher wird die Analyse mit einer priorisierten Liste regulärer Ausdrücke entlang der vier klassischen Achsen durchgeführt: Browser, Engine, Betriebssystem, Gerät. Open-Source-Bibliotheken wie ua-parser-js, bowser und die UAParser-Lua-/Python-Ports pflegen alle dieselben Musterverzeichnisse. Seit 2022 liefert Chrome UA Reduction: Die Browserversion wird auf MAJOR.0.0.0 eingefroren und plattformspezifische Nebentokens werden entfernt — ein analysiertes Chrome 120.0.0.0 unter Windows bedeutet also tatsächlich Chrome 120-irgendetwas unter Windows 10 oder 11, wobei die genaue Build-Nummer hinter Client Hints verborgen ist. Der moderne Ersatz sind User-Agent Client Hints (draft-ietf-httpbis-client-hints), die Sec-CH-UA, Sec-CH-UA-Mobile und Sec-CH-UA-Platform bei jeder Anfrage offenlegen und die hochentropischen Werte (Modell, vollständige Version, Architektur) über navigator.userAgentData.getHighEntropyValues() bereitstellen. Ein UA-Parser ist weiterhin nützlich für Log-Auswertung und Bot-Erkennung, aber Feature-Detection und Client Hints sollten jede Laufzeitverzweigung steuern.
- RFC 7231 §5.5.3 definiert User-Agent als Produkt-Tokens plus Kommentare, ohne Grammatik für Betriebssystem oder Gerät — jeder Parser bringt seine eigene Regex-Liste mit
- Das Mozilla/5.0-Präfix ist ein Kompatibilitäts-Hack von 1993 aus der Mosaic-Ära; Safari, Chrome und Edge behalten es alle bei, um browser-abfragende Seiten nicht zu brechen
- Chrome UA Reduction (ausgerollt 2022–2023) friert die Nebenversion auf 0.0.0 ein und fixiert die Plattform-Zeichenfolge — echte Build-Nummern stehen in Sec-CH-UA-Full-Version-List
- User-Agent Client Hints legen Sec-CH-UA, Sec-CH-UA-Mobile, Sec-CH-UA-Platform bei jeder Anfrage offen; hochentropische Felder erfordern navigator.userAgentData.getHighEntropyValues(['model','platformVersion','architecture'])
- Bot-Erkennung per Schlüsselwort (bot, crawler, spider, Googlebot, Bingbot, Baiduspider, YandexBot) erfasst höfliche Crawler, aber nicht betrügerische Scraper, die einen echten Chrome-UA kopieren — ergänzen Sie mit Ratenlimits und Verhaltenssignalen
- Mobil gegen Tablet wird anhand von Tokens (Mobile, Tablet, iPhone, iPad) entschieden, nicht anhand der Bildschirmgröße; ein Android-UA ohne Mobile-Token wird von den meisten Analysetools als Tablet behandelt
- Caches und CDNs, die auf Vary: User-Agent schlüsseln, können eine einzelne Ressource in Tausende von Cache-Einträgen fragmentieren — bevorzugen Sie Vary: Sec-CH-UA-Mobile oder akzeptieren Sie niedrige Trefferraten
Beispiele
Chrome-Browser
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36iPhone Safari
Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 Version/17.0 Mobile/15E148 Safari/604.1Google Bot
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)FAQ
Was extrahiert das User-Agent-Parsing?
Browsername und -version (z. B. 'Chrome 124'), Betriebssystem und Version, Gerätetyp (Desktop/Mobile/Tablet), CPU-Architektur, Rendering-Engine (Blink/Gecko/WebKit) sowie Bot-/Crawler-Klassifizierung, falls der UA einem bekannten Crawler-Muster entspricht.
Wie genau ist UA-Parsing?
Gut bei gängigen, etablierten Browsern. Schwierig wird es bei: ganz neuen Versionen, bevor die Parser-Bibliothek aktualisiert ist; Browsern, die Chrome/Safari imitieren, um Erkennung zu umgehen; Bots, die einen echten UA fälschen; eingebetteten WebViews, deren UA die Host-App statt der Engine nennt.
Warum ist der User-Agent-String weniger nützlich geworden?
Browser-Hersteller (allen voran Chrome) 'frieren' UA-Strings ein, um Fingerprinting einzudämmen, und drängen stattdessen auf UA Client Hints (Sec-CH-UA-*-Header). In wenigen Jahren werden UA-Strings nur noch stabile, entropie-arme Werte melden; echte Geräteinfos liegen in den Client Hints. Dein Code sollte entsprechend migrieren.
Sollte ich UA-Erkennung für Feature-Gating nutzen?
Fast nie. UAs können lügen, und Feature-Unterstützung schwankt je nach Version, sogar im selben Browser. Mache stattdessen Feature-Detection mit Checks wie `if ('serviceWorker' in navigator)`. UA-Erkennung ist okay für Analytics, Support-Tickets und Bug-Report-Klassifizierung - nicht aber, um zu entscheiden, welche API du aufrufst.
Kann ich meinen eigenen UA parsen?
Ja. Die Seite zeigt oben den aktuellen UA deines Browsers an und zerlegt ihn in seine Komponenten. Praktisch, wenn du genau wissen willst, welche Version dein Browser an Server meldet.
Wie sieht es mit Bot-Erkennung aus?
Der Parser markiert wohlerzogene Bots, die sich selbst zu erkennen geben (Googlebot, Bingbot, Slackbot). Bösartige Bots geben sich meist als reale Browser aus, daher ist UA-basierte Bot-Erkennung allein schwach. Kombiniere sie für echten Schutz mit Rate-Limits, CAPTCHA und Verhaltenssignalen.
Wird der UA irgendwohin hochgeladen?
Nein. Das Parsing läuft im Browser über eine JS-Bibliothek (typischerweise ua-parser-js). Eingefügte UA-Strings werden nicht an einen Server gesendet.