Fügen Sie eine beliebige User-Agent-Zeichenfolge ein und lesen Sie Browser, Rendering-Engine, Betriebssystem, Geräteklasse und CPU-Architektur ab, mit kopierbarer JSON-Aufschlüsselung.
Verwandeln Sie eine User-Agent-Zeichenfolge in etwas Lesbares. Ihr eigener User-Agent ist standardmäßig geladen. Fügen Sie eine andere Zeichenfolge ein, um zu sehen, wie sie zerlegt wird, und kopieren Sie die JSON-Aufschlüsselung für einen Fehlerbericht oder ein Test-Fixture.
Browser
–
Engine
–
Betriebssystem
–
Gerätetyp
–
CPU-Architektur
–
Warum User-Agent-Zeichenfolgen so aussehen
Drei Jahrzehnte, in denen sie sich gegenseitig imitieren
Ein moderner User-Agent ist keine Beschreibung, er ist ein Fossil. Fast jeder Desktop-Browser öffnet noch mit Mozilla/5.0, einem Token, der seit dem Verlust des Browserkriegs durch Netscape nichts mehr bedeutet. Er überlebt, weil frühe Server nach Mozilla schnüffelten, bevor sie Frames auslieferten, also fügte jeder Konkurrent den Token hinzu, um nicht herabgestuft zu werden. Sobald ein Browser lügt, um die gute Version einer Seite zu bekommen, müssen die übrigen identisch lügen oder Nutzer verlieren.
Dieselbe Spirale erzeugte den Rest der Zeichenfolge. Chrome sendet AppleWebKit/537.36 (KHTML, like Gecko), obwohl es 2013 die Verwendung von WebKit einstellte und KHTML noch viel länger tot ist. Edge hängt Edg/ statt Edge/ an, speziell weil zu viele Seiten einen Teilstring-Check für den alten Token hatten und ein kaputtes Fallback auslieferten. Die echte Version von Safari verbirgt sich in einem Version/-Token, während das nachgestellte Safari/537.36 eingefroren ist. Das ist der Grund, warum das Parsen von spezifisch zu unspezifisch geordnet werden muss: jeder Chromium-Fork behauptet auch, Chrome zu sein, und jeder WebKit-Browser behauptet auch, Safari zu sein, also muss der erste sichere Treffer gewinnen.
Was Sie vertrauen können und was nicht
Die Zeichenfolge ist ein vom Client gelieferter Header, was bedeutet, sie ist ein Hinweis und nie ein Beweis. Jeder HTTP-Client kann alles senden, und Nutzer fälschen sie routinemäßig über Erweiterungen oder Entwicklerwerkzeuge. Behandeln Sie sie als diagnostische Farbe in einem Log, nicht als Autorisierungseingabe oder Sicherheitsgrenze.
Selbst wenn niemand lügt, werden die Werte zunehmend grob. Chrome und Edge frieren die Minor-Version-Segmente nun auf 0.0.0 ein und melden eine reduzierte Plattformzeichenfolge, also deckt Windows NT 10.0 sowohl Windows 10 als auch Windows 11 ab, und macOS ist seit Jahren auf 10_15_7 festgepinnt, unabhängig von der tatsächlichen Veröffentlichung. Firefox rundet seine OS-Details ähnlich. Wenn eine Versionsnummer verdächtig glatt aussieht, ist sie es wahrscheinlich.
Die Geräteerkennung ist der wackeligste Teil. Es gibt kein Gerätefeld in der Zeichenfolge; es wird aus der An- oder Abwesenheit von Tokens wie Mobile, iPad oder Tablet abgeleitet. Android-Tablets sind die klassische Falle, da viele nur durch das Fehlen des Mobile-Tokens identifiziert werden, und iPadOS stellt sich in der Standardkonfiguration absichtlich als desktop-Mac dar.
Verwenden Sie stattdessen meist Feature-Erkennung
Für alles, was das Verhalten ändert, testen Sie die Fähigkeit statt des Etiketts. if ('share' in navigator) ist korrekt und dauerhaft; if (isSafari) bricht in dem Moment, in dem eine andere Engine dieselbe API ausliefert oder Safari einen Fix ausliefert. Für das Layout beschreiben CSS-Media-Queries den tatsächlichen Viewport und die Eingabemethode weit besser als ein Geräteraten je könnte.
Wo der User-Agent seinen Platz noch verdient, sind Analytik, Absturz-Triage und das Reproduzieren von Fehlern. Zu wissen, dass ein Stack-Trace nur auf Gecko erscheint oder dass ein Layout-Bruch auf Samsung Internet beschränkt ist, verwandelt einen nicht reproduzierbaren Bericht in einen spezifischen Testfall. Der moderne Ersatz ist die User-Agent-Client-Hints-API, die dieselben Fakten als strukturierte Werte preisgibt und eine explizite Anfrage für hoch-entropy Details wie die volle Plattformversion erfordert.
FAQ
Warum behauptet Chrome, gleichzeitig Mozilla und Safari zu sein?
Historische Kompatibilität. Server schnüffelten früher nach Mozilla, bevor sie modernes Markup sandten, und später nach Safari, bevor sie WebKit-spezifisches CSS sandten. Jeder Browser fügte diese Token hinzu, um nicht eine heruntergestufte Seite zu erhalten, und sie jetzt zu entfernen würde Seiten brechen, die sie noch prüfen.
Kann ich dem User-Agent für Sicherheitsentscheidungen vertrauen?
Nein. Es ist ein Request-Header, den der Client vollständig kontrolliert und auf einen beliebigen Wert setzen kann. Verwenden Sie ihn nur für Diagnostik und Statistik. Alles, was den Zugriff steuert oder eine Richtlinie erzwingt, muss auf Authentifizierung vertrauen, nicht auf eine selbst gemeldete Zeichenfolge.
Warum wird meine macOS-Version als 10.15.7 gemeldet?
Safari und Chrome frieren die gemeldete macOS-Version absichtlich auf 10_15_7 ein, um die Fingerabdruck-Oberfläche zu verringern. Der Browser kennt die echte Version, stellt sie aber nicht in den Header. Client Hints können sie preisgeben, aber nur wenn die Site explizit fragt.
Wie unterscheidet das Werkzeug ein Tablet von einem Telefon?
Es sucht nach einem iPad-Token, einer Android-Zeichenfolge ohne Mobile-Token oder einem expliziten Tablet-Marker. Das spiegelt wider, was die meisten Bibliotheken tun, ist aber von Natur aus eine Heuristik. Einige Android-Tablets sind von großen Telefonen allein an der Zeichenfolge nicht zu unterscheiden.
Sendet das meinen User-Agent irgendwohin?
Nein. Das Parsen läuft vollständig in Ihrem Browser mit regulären Ausdrücken, und es wird nichts hochgeladen. Der Standardwert wird lokal aus navigator.userAgent gelesen und verlässt die Seite nie.
Was sollte ich statt User-Agent-Sniffing verwenden?
Feature-Erkennung für Fähigkeiten, CSS-Media-Queries für das Layout und die User-Agent-Client-Hints-API, wenn Sie wirklich Plattformfakten brauchen. Client Hints geben strukturierte Werte und halten hoch-entropy Details hinter einem expliziten Opt-in.