Command Palette

Search for a command to run...

Was ist ein User-Agent String und wie man ihn liest

Was ist ein User-Agent String und wie man ihn liest

T
Toolz Team
|Aug 31, 2026|16 min lesen
Bevorzugen Sie Toolz.dev bei Google

Teil der Sammlung Web-Tools

Benutzeragent Parser

Fügen Sie eine User-Agent-Zeichenfolge ein und lesen Sie den Browser, die Rendering-Engine, das Betriebssystem, den Gerätetyp und die CPU, die sie beschreibt, alles in Ihrem Browser.

Verwenden Sie die Benutzeragent Parser

Das erste Mal, dass ich einen User-Agent-String in großen Mengen verstehen musste, war während eines SEO-Projekts wpadminify.comStarren auf ein Serverzugriffsprotokoll, um herauszufinden, wie viel vom Datenverkehr echte Personen und wie viel Crawler waren. Ich hatte eine Spalte mit Zeichenfolgen, mit denen alles begann Mozilla/5.0‘sich alle mit Safari, und die Hälfte von ihnen lügte darüber, ein Browser zu sein, während sie tatsächlich ein anderer war sie mit dem Auge zu lesen war aussichtslosDas ist die Aufgabe, die ein User-Agent-Parser macht, und nachdem ich es viel zu oft auf die harte Tour gemacht habe, habe ich mir eine eingebaut Toolz.dev. Dies ist die Anleitung dazu, und zu dem überraschend chaotischen Kopf dahinter.

tl; dr: Der Toolz Benutzeragenten-Parser Nimmt eine User-Agent-Zeichenfolge und teilt sie in Browser, Rendering-Engine, Betriebssystem, Gerätetyp und CPU-Architektur auf. Es wendet die Erkennungsreihenfolge an, die den Header's-Mirks-Bedarf erfordert, sodass Edge nicht falsch gelesen wird, da Chrome und mobile Safari von seinem Token in der realen Version gelesen werden. Es markiert auch bekannte Bots. Alles läuft clientseitig: kein Upload, kein Signup, sicher für echte Protokollzeilen.

Was ist eine User-Agent-Zeichenfolge?

Eine User-Agent-Zeichenfolge ist der Wert der User-Agent Request-Header, den ein Browser oder HTTP-Client mit fast jeder Anfrage sendet Der Header ist definiert in RFC 9110, die HTTP Semantics Spezifikation, die es als eine Folge von Produktkennungen und Kommentaren beschreibt, die es einem Server ermöglichen, die Software zu identifizieren, die die Anfrage stellt In der Praxis benennt es den Browser, seine Version, die Rendering-Engine, das Betriebssystem und oft auch das Gerät.

Die Absicht war vernünftig: Geben Sie Servern eine Möglichkeit zu wissen, was eine Verbindung herstellt, damit sie Antworten anpassen oder Statistiken sammeln können. Die Realität ist, dass die Zeichenfolge zu einem der am wenigsten vertrauenswürdigen Teile selbst gemeldeter Daten im Web geworden ist, nicht weil sie bösartig ist sondern weil zwei Jahrzehnte Kompatibilitäts-Hacks Token auf Token geschichtet haben, bis die offensichtliche Lesart normalerweise die falsche ist.

Hier ist eine moderne Chrome-Zeichenfolge unter Windows:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36

Es behauptet Mozilla zu sein, erwähnt AppleWebKit und endet mit dem Wort Safari Es ist nichts von all diesen Dingen; es ist Chrome. Jeder Token zuvor Chrome/126 Historisches Sediment ist Ein Parser existiert gerade deshalb, weil man den Token, die am maßgebendsten aussehen, nicht trauen kann.

Warum ist das Parsen eines User-Agent so fehleranfällig?

Der Header wuchs durch Nachahmung In den frühen Browserkriegen überprüften Server den User-Agent, um zu entscheiden, welche Version einer Seite sie senden sollten, und sie überprüften ungeschickt, oft mit einer einfachen Teilzeichenfolgeübereinstimmung Ein neuer Browser, der die gute, moderne Seite empfangen wollte, musste das Token enthalten, nach dem der Server suchte, also kopierte jeder Browser den vorherigen GewinnerNetscape nannte sich Mozilla, so dass Internet Explorer behauptete, Mozilla-kompatibel zu sein Als WebKit-Browser eintrafen, trugen sie die Mozilla- und KHTML-Tokens. Chrome gabelte von WebKit ab und behielt sowohl AppleWebKit als auch Safari bei, damit WebKit-Sniffing-Sniffing-Server es ehrlich behandeln würde. Das Ergebnis ist, dass eine einzelne Zeile mit verschiedenen Browsernamen gut behandelt werden kann.

So entstehen konkrete Fallen für jeden, der die Saite liest:

  • Edge und Opera enthalten beide Chromedrohen Microsoft Edge anhängt Edg/126.0.0.0 und Opera anhängt OPR/(aber beide tragen auch das volle Chrome/126 Token, weil sie auf Chromium basieren Teste zuerst für Chrome und du wirst jeden Edge - und Opera-Benutzer als Chrome kennzeichnen.
  • Safari verbirgt seine reale Version. Auf dem Desktop und unter iOS meldet Safari seine benutzerorientierte Version in a Version/17.5 Token, während die Safari/604.1 Token gegen Ende ist die WebKit-Buildnummer, nicht die Browserversion Lesen Safari/ Als Version und man bekommt eine nichtssagende Zahl.
  • Chrome unter iOS ist keine Chrome's-Engine. Apple benötigt alle iOS-Browser, um WebKit zu verwenden, sodass Chrome auf einem iPhone berichtet CriOS und läuft WebKit, nicht Blink. Firefox auf iOS ist FxiOS, auch WebKit.
  • Windows 11 existiert nicht in der Zeichenfolge. Microsoft hat das NT-Kernel-Token nie angestoßen, daher berichten sowohl Windows 10 als auch Windows 11 Windows NT 10.0. Die Saite kann sie überhaupt nicht unterscheiden.

Ein Parser ist ein kleiner Haufen geordneter Regeln, die über diese Fallen Bescheid wissen Das ist wirklich alles, aber die richtige Reihenfolge zu bekommen, ist das ganze Spiel.

Wie funktioniert der Toolz User Agent Parser?

der Parser Führt eine Abfolge von Prüfungen aus, deren Reihenfolge die oben genannten Fallen kodiert Es sucht nach den Browsern, die zuerst ein anderes Browser' s-Token einbetten Edge vor Chrome, Opera vor Chrome, Samsung Internet und UC Browser vor Chrome, also das ausgeliehene Chrome Token gewinnt nie aus Versehen Es liest Safari aus seinem Version/ Token statt seiner Safari/ Token erstellen. Es erkennt die iOS-Varianten CriOS und FxiOS als Chrome bzw. Firefox, während ihre Engine korrekt als WebKit gemeldet wird.

Für das Betriebssystem bildet es die Windows NT-Kernelnummer dem Marketingnamen zu, also Windows NT 6.1 Windows 7 wird und Windows NT 10.0 Windows 10 oder 11 wird, ehrlich als Paar angegeben, weil die Zeichenfolge sie wirklich nicht unterscheiden kann Es stellt die punktierte Form von iOS - und macOS-Versionen wieder her, die der Header mit Unterstrichen schreibt wie 17_5und es erkennt Android, Chrome OS und Linux.

Für das Gerät klassifiziert es die Anfrage als Desktop, Mobilgerät, Tablet oder Bot. Die Tablet-Regel ist die Fummelei: Ein iPad ist ein Tablet, ein Android-Gerät ohne Mobile Token ist ein Tablet und alles, was dazu passt Mobile, iPhone, oder Windows Phone Telefon ist, wo die Zeichenfolge ein Gerätemodell, wie eine Android-Build-Zeichenfolge oder einen Apple-Produktnamen, freilegt, wird diese vom Parser geflächenfreigelegt.

Es markiert auch Bots. Dies ist das Feld, das ich am meisten erreiche, denn wenn Sie ein Zugriffsprotokoll lesen, ist die nützlichste Frage, wie viel vom Datenverkehr automatisiert wird. Der Parser passt zu einem breiten Satz von Signaturen, die Suchcrawler, soziale Vorschau-Fetcher und Befehlszeilen-Clients abdecken.

Was kann Ihnen ein User-Agent sagen und was nicht?

Es lohnt sich, die Grenzen genau zu kennen, denn die String als Tatsache zu behandeln, führt zu Fehlentscheidungen.

Frage Kann die UA darauf antworten? Notizen
Welche Browserfamilie Normalerweise ja Mit korrekter Erkennungsreihenfolge
Exakte Browserversion Normalerweise ja Zunehmend eingefroren oder reduziert
Betriebssystemname Normalerweise ja Windows 10 vs. 11 ist unmöglich
Gerätetyp Grob Heuristisch, nicht garantiert
Exaktes Gerätemodell Manchmal Nur wenn die Zeichenfolge es enthält
Ob der Kunde echt ist kein Trivial verwöhnungsfähig
Bildschirmgröße oder Fähigkeiten kein Verwenden Sie stattdessen die Funktionserkennung

Die letzten beiden Zeilen sind am wichtigsten Ein User-Agent wird selbst gemeldet und kann in einer Codezeile geändert werden, von jedem HTTP-Client gesetzt oder aus Datenschutzgründen vom Browser eingefroren werden Ein Scraper kann sich unter Windows als Chrome ankündigen und es gibt nichts in der Zeichenfolge, was ihm widersprechen könnte Das geparste Ergebnis sagt Ihnen also, was der Client behauptet, was für Statistiken und Debugging nützlich ist, aber kein Beweis für irgendetwas ist Wenn Sie wissen müssen, was ein Browser tatsächlich kann, können Sie Funktionen in JavaScript erkennen, anstatt aus dem Namen auf Fähigkeiten zu schließen. Dies ist das gleiche Prinzip beim Schreiben von belastbarem Front-End-Code, den der Webentwickler-Toolkit Die Zusammenfassung kehrt wiederholt zurück.

Gehen User-Agent-Strings weg?

Nicht genau, aber sie werden bewusst reduziert Chromium-Browser frieren und trimmen die Legacy-Zeichenfolge seit einigen Jahren, die den Detaillierungsgrad, den sie offenlegt, insbesondere die kleineren Versionsnummern und einige Plattformspezifika, zu begrenzen Der Ersatz ist Hinweise zum benutzerorientierten Kunden„ein Mechanismus, bei dem der Server genau die Client-Informationen abfragt, die er benötigt Sec-CH-UA Anforderung Header und die navigator.userAgentData JavaScript-API, anstatt eine lange Zeichenfolge zu empfangen, muss sie analysiert werden. Client-Hinweise ist auch der Ort, an dem die Unterscheidung zwischen Windows 10 und 11 endlich verfügbar wird, durch Sec-CH-UA-Platform-Versiondrohen

Das praktische Ergebnis für die nächsten Jahre ist, dass es beides gibt Der Klassiker User-Agent Header wird immer noch auf jeder Anfrage von jedem Browser und jedem Nicht-Browser-Client ausgeliefert, und eine Menge Tools, Analysen und serverseitiger Logik liest es immer noch. Das Parsen der Zeichenfolge bleibt also die tragbarste Möglichkeit, einen Client zu identifizieren, auch wenn die umfangreicheren Daten zu Client-Hinweisen verschoben werden. Wenn Sie etwas Neues erstellen und die Plattformversion präzise wünschen, lesen Sie Client-Hinweise; Wenn Sie ein vorhandenes Protokoll analysieren oder die unterschiedlichste Anzahl von Clients unterstützen, analysieren Sie die Zeichenfolge.

Wie benutze ich den Parser?

Der Ablauf ist bewusst einfach Fügen Sie eine User-Agent-Zeichenfolge in das Feld ein, oder klicken Sie auf eines der integrierten Samples, um eine repräsentative Desktop, Mobile, oder Bot-Zeichenfolge zu sehen Um Ihre eigene zu greifen, öffnen Sie Ihre Browserkonsole und geben Sie navigator.userAgentFügen Sie dann das Ergebnis ein. Wenn Sie Browser, Engine, Betriebssystem, Gerätetyp, CPU-Architektur und Bot-Flag-Update live eingeben, ohne dass eine Taste gedrückt werden muss. Wenn Sie das Ergebnis an anderer Stelle haben möchten, kopieren Sie es als durch Tabulatoren getrennte Tabelle, die sauber in eine Tabelle oder einen Fehlerbericht eingefügt wird.

Da das Ganze in Ihrem Browser läuft, können Sie rohe Zugriffslog-Zeilen oder echte Besucherzeichenfolgen einfügen, ohne dass eine davon Ihren Computer verlässt. Dieses clientseitige Modell ist bewusst und hinter jedem Tool auf der Website dasselbe, erklärt in der Datenschutz Online-Tools Leitfaden. Für einen Berechtigungsnachweis debuggen Sie neben einer Anfrage, dem Basisauthenker und das JWT-Decoder Folgen Sie dem gleichen No-Upload-Ansatz.

Wo der Parser zu den anderen Web-Tools passt

Der User-Agent-Parser sitzt in einem kleinen Cluster von Request-and-Response-Tools auf der Seite, wenn Sie den Traffic zu einer Domain prüfen, wird die Domänensuche Werkzeug antwortet, wem es gehört und betreibt Wenn eine Anfrage einen Träger-Token trägt, müssen Sie prüfen, die JWT-Decoder Liest die Ansprüche daraus herausWenn Sie überhaupt eine authentifizierte Anfrage erstellen, wird die Basisauthenker baut die Authorization Kopfzeile. Und wenn Sie daran arbeiten, wie sich eine Seite Crawlern präsentiert, die Ihre Seiten unter ihren eigenen User-Agents lesen, wird die Meta-Tag-Generator Formt die Tags, die sie konsumieren.

Für jeden, der einen persönlichen Satz davon zusammenstellt, ist die Entwicklerproduktivitätstools Ratgeber behandelt, wie die browserbasierten Dienstprogramme auf der Seite in einen Arbeitstag passen Der Sinn, sie zusammenzuhalten, ist, dass das Debuggen einer HTTP-Interaktion selten nur eine dieser Fragen beinhaltet.

Ein praktischer Workflow: Ein Verkehrsprotokoll lesen

Lassen Sie mich das mit der Aufgabe konkretisieren, die mich auf dieser Straße in Gang gesetzt hat Sie haben ein Stück Ihres Access Logs exportiert und Sie wollen es verstehen Der naive Ansatz ist, die User-Agent-Säule zu in den Blick zu nehmen, genau dort, wo die Fallen beißen Ein Crawler, der sich höflich als Googlebot Einfach ist, aber ein kopfloser Scraper, der sich als normaler Chrome-Build ankündigt, sieht identisch aus mit einem echten Besucher, bis Sie die anderen Signale überprüfen.

Der Parser hilft auf zwei Arten. Erstens fängt das Bot-Flag die ehrlichen Crawler und die gängigen Automatisierungs-Clients sofort ein, sodass Sie den offensichtlichen Maschinenverkehr in einem Durchgang vom menschlichen Datenverkehr trennen können. Zweitens sagt Ihnen die korrekte Browser- und Betriebssystemaufschlüsselung des verbleibenden Datenverkehrs etwas Reales über Ihr Publikum: ob es mobil verzerrt, welche Betriebssysteme dominieren, ob ein alter Browser immer noch wichtig genug ist, um es zu testen. Bei der WP Adminify-Arbeit änderte diese Aufschlüsselung, welche Browser wir zum Testen priorisierten, und bestätigte, dass ein Teil des scheinbar organischen Datenverkehrs Vorschau war und Bots und nicht Leser überwachte. Das Parsen der Zeichenfolgen verwandelte eine Rauschwand in eine Entscheidung.

Die einzige Disziplin, die man behalten sollte, ist die aus dem Grenzwertabschnitt: Das geparste Ergebnis ist ein Anspruch, kein Beweis. Ein entschlossener Scraper wird eine überzeugende Zeichenfolge fälschen, und kein Parser kann das allein vom User-Agent erfassen Kombinieren Sie die Analyse mit Anforderungsmustern, Raten und anderen Signalen, wenn viel auf dem Spiel steht. Für Alltagsstatistiken und Debugging ist eine korrekte Analyse jedoch genau das, was Sie brauchen, und es ist der Fehler, es von Hand zu machen.

Was sagen mir die Rendering-Engine und die CPU-Felder?

Zwei der analysierten Felder erhalten weniger Aufmerksamkeit als der Browser und das Betriebssystem, aber beide sind nützlich. Die Rendering-Engine ist die Komponente, die HTML und CSS tatsächlich in Pixel umwandelt, und sie ist ein besserer Prädiktor für das Verhalten einer Seite als der Browsername. Chrome, Edge, Opera, Brave, Samsung Internet und die meisten anderen teilen sich die Blink-Engine, sodass normalerweise in allen ein Rendering-Fehler auftritt; Firefox verwendet Gecko; und Safari verwendet zusammen mit jedem Browser unter iOS WebKit. Wenn Sie einen Layoutfehler testen, zeigt Ihnen die Gruppierung Ihres Datenverkehrs nach Engine und nicht nach dem Browsernamen, wie viele wirklich unterschiedliche Renderpfade Sie testen müssen, die oft nur drei sind.

Der Parser leitet die Engine von den Plattform-Tokens und nicht vom Browser-Label ab, weshalb er Blink für einen Chromium-Browser und WebKit für Safari melden kann, obwohl beide vom selben AppleWebKit-Token abstammen. Es fängt auch die älteren Engines Trident für Internet Explorer und EdgeHTML für Legacy Edge ab, die immer noch in Unternehmensprotokollen angezeigt werden.

Das Feld CPU-Architektur liest die Plattform-Token für x86_64, Win64, arm64, und deren Angehörige, die melden, ob der Client ein 64-Bit, 32-Bit - oder ARM-Gerät ist Es ist das Feld, um zu überprüfen, wann Sie plattformspezifische Downloads bereitstellen und wissen müssen, welche Build ein Besucher ausführen kann, und es ist ein leises Signal dafür, wie modern Ihre Audience' s Hardware ist.

Häufig gestellte Fragen

Was ist eine User-Agent-Zeichenfolge? Eine User-Agent-Zeichenfolge ist der Wert des User-Agent-HTTP-Headers, den ein Browser oder Client mit jeder Anfrage sendet. Es handelt sich um eine Liste von Produkt-Tokens, die den Browser, seine Rendering-Engine, das Betriebssystem und häufig das Gerät benennen, definiert in RFC 9110. Server lesen es, um die Software zu identifizieren, die mit ihnen verbunden ist.

Wie finde ich mein eigenes User-Agent? Öffnen Sie Ihren Browser' s Entwicklerkonsole und geben Sie navigator.userAgent ein, dann drücken Sie die Eingabetaste Die Zeichenfolge, die er ausgibt, ist genau das, was Ihr Browser an Server sendet Fügen Sie sie in den Parser des Benutzeragenten ein, um den Browser, das Betriebssystem und das Gerät, auf das er dekodiert, anzuzeigen.

Warum enthält Chrome' s User-Agent das Wort Safari? Aus Gründen der Abwärtskompatibilität hat Chrome seine Engine von Apple's WebKit abgespalten und frühe Server haben vor der Bereitstellung moderner Seiten nach dem Safari-Token gesucht, sodass Chrome es beibehalten hat, um ein Downgrade zu vermeiden. Die gleiche Geschichte ist, warum fast jeder Browser seine Zeichenfolge immer noch mit Mozilla/5.0 beginnt.

Kann ein User-Agent Windows 10 von Windows 11 unterscheiden? Nr. Beide melden Windows NT 10.0, da Microsoft das NT-Kernel-Token für Windows 11 nie inkrementiert hat, so dass die Zeichenfolge allein die beiden nicht unterscheiden kann Die moderne Art, sie auseinanderzuhalten, sind User-Agent Client Hints, speziell der Sec-CH-UA-Platform-Version-Header.

Ist ein User-Agent zuverlässig für die Identifizierung eines Geräts? Es ist ein nützlicher Hinweis, kein Beweis. User-Agents können in einer Codezeile geändert werden, von jedem HTTP-Client festgelegt, von Scrapern gefälscht oder vom Browser aus Datenschutzgründen eingefroren werden. Behandeln Sie das analysierte Ergebnis als das, was der Client behauptet, und kombinieren Sie es mit anderen Signalen, wenn es auf Genauigkeit ankommt.

Wie erkennt der Parser Bots und Crawler? Es gleicht die Zeichenfolge mit einer breiten Liste bekannter Signaturen ab, darunter Suchcrawler wie Googlebot und Bingbot, Social-Preview-Fetcher und Automatisierungsclients wie Curl, Wget und Headless Chrome. Jedes Match setzt das Bot-Flag und klassifiziert das Gerät als Crawler.

Ist es sicher, Produktionsprotokoll User-Agents hier einzufügen? Ja. Alle Parsing geschieht in Ihrem Browser mit JavaScript, und die Zeichenfolge wird niemals an einen Server gesendet Sie können rohe Zugriffslogzeilen oder echte Besucher-Benutzeragenten einfügen, ohne dass diese Ihr Gerät verlassen.

Werden User-Agent-Strings veraltet? Der Header wird eingefroren und reduziert, nicht entfernt Chromium-Browser decken nun das Detail in der Legacy-Zeichenfolge und legen stattdessen reichhaltigere Daten durch User-Agent Client Hints offen Die klassische Zeichenfolge wird immer noch auf jeder Anfrage ausgeliefert, sodass das Parsen die tragbarste Art bleibt, Client-Details zu lesen.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!