User-Agent verstehen: Aufbau, Inhalt und wie du ihn auswertest

Jedes Mal, wenn dein Browser eine Webseite anfordert, schickt er einen unscheinbaren Text mit: den User-Agent. Dieser String steckt im HTTP-Header jeder Anfrage und verrät dem Server, welcher Browser, welches Betriebssystem und welche Rendering-Engine gerade unterwegs sind. Auf den ersten Blick wirkt er wie Buchstabensalat, doch er folgt einer nachvollziehbaren Logik. Dieser Ratgeber erklärt dir, wie ein User-Agent aufgebaut ist, was du daraus ablesen kannst und wo die Erkennung an ihre Grenzen stößt.

Was ist ein User-Agent überhaupt?

Der User-Agent ist ein HTTP-Header-Feld namens User-Agent, das Software bei jeder Anfrage an einen Server übermittelt. Nicht nur Browser nutzen ihn: Auch Crawler von Suchmaschinen, Kommandozeilen-Tools wie curl, mobile Apps und Bots tragen einen eigenen User-Agent. Der Server kann anhand dieses Strings Entscheidungen treffen, etwa ob er eine Desktop- oder Mobilversion ausliefert oder ob er einen bekannten Suchmaschinen-Bot mit speziellem Markup bedient.

Wenn du wissen willst, was sich konkret hinter einem bestimmten String verbirgt, kannst du ihn mit dem User Agent Parser direkt zerlegen lassen. Das Tool erkennt Browser und Betriebssystem aus einem User-Agent und macht die einzelnen Bestandteile sichtbar, ohne dass du den String selbst entschlüsseln musst.

Der typische Aufbau eines User-Agent-Strings

Ein moderner Browser-User-Agent sieht beispielsweise so aus:

Die Reihenfolge und Schreibweise sind über Jahre gewachsen und historisch bedingt. Genau deshalb lässt sich ein User-Agent nicht mit einer einzigen, sauberen Regel parsen, sondern braucht ein Set aus Mustern für die verschiedenen Browser-Familien.

Warum steht überall "Mozilla"?

Das vielleicht größte Rätsel: Warum behauptet ein Chrome- oder Safari-Browser, er sei "Mozilla"? Die Antwort liegt in den 1990er-Jahren. Der Netscape Navigator hieß intern "Mozilla", und Server lieferten bestimmte Features nur an Browser aus, die sich so meldeten. Als der Internet Explorer aufkam, gab er sich ebenfalls als Mozilla-kompatibel aus, um diese Inhalte zu erhalten. Jeder spätere Browser kopierte das Verhalten, um nicht ausgeschlossen zu werden. Das Ergebnis ist ein historischer Ballast, den heute fast jeder User-Agent mit sich herumträgt.

Browser und Betriebssystem zuverlässig erkennen

Aus dem User-Agent lassen sich grob folgende Informationen ableiten: der Browser (Chrome, Firefox, Safari, Edge), seine Hauptversion, das Betriebssystem (Windows, macOS, Linux, Android, iOS) und der Gerätetyp (Desktop, Tablet, Smartphone). Die Erkennung funktioniert über charakteristische Token. So enthält Edge etwa Edg/, während Chrome diesen Marker nicht hat. Firefox trägt Gecko und Firefox/, Safari auf dem iPhone enthält iPhone und Version/, aber kein Chrome/.

Die Tücke steckt in den Überschneidungen: Chrome enthält Safari, Edge enthält Chrome und Safari. Ein guter Parser arbeitet deshalb in einer festen Prüfreihenfolge – erst die spezifischeren Marker, dann die allgemeineren. Genau diese Logik nimmt dir der User Agent Parser ab.

Die Grenzen der User-Agent-Erkennung

So nützlich der String ist, du solltest ihm nicht blind vertrauen. Mehrere Faktoren schränken seine Aussagekraft ein:

Für Statistik, grobe Geräteerkennung und Debugging bleibt der User-Agent dennoch praktisch. Für funktionale Entscheidungen im Code ist Feature Detection – also das Prüfen, ob eine bestimmte Funktion existiert – der robustere Weg.

Praktische Einsatzgebiete

In der Praxis begegnet dir der User-Agent vor allem in Server-Logs, in Web-Analytics und beim Debugging von Darstellungsfehlern. Wenn ein Nutzer ein Problem meldet, hilft sein User-Agent dabei, die Umgebung nachzustellen. Beim Testen von Crawlern wiederum kannst du prüfen, ob deine robots.txt und dein Markup korrekt auf bekannte Bots reagieren. Wenn du in diesem Zug auch Statuscodes oder Header nachschlagen willst, findest du im Webtools-Bereich weitere passende Helfer wie den HTTP Status Code Spicker.

Fazit

Der User-Agent ist ein gewachsener, etwas chaotischer, aber sehr nützlicher Fingerabdruck jeder HTTP-Anfrage. Wer seinen Aufbau einmal verstanden hat, liest Browser, Engine und Betriebssystem in Sekunden heraus. Für den schnellen Blick ohne manuelles Zerlegen nutzt du am besten den User Agent Parser – und behältst dabei im Hinterkopf, dass der String zwar informativ, aber nie fälschungssicher ist.