Alle Artikel

User-Agent: warum dieser String ein solches Durcheinander ist

Schaut man sich den User-Agent eines modernen Chrome an, findet man so etwas wie "Mozilla/5.0 ... AppleWebKit/537.36 ... Chrome/120.0 Safari/537.36" — eine Zeichenkette voller Verweise auf Browser, die Chrome eigentlich gar nicht ist. Das ist das Ergebnis jahrzehntelanger historischer Notlösungen, kein Zufall.

Der Ursprung von "Mozilla"

In den 1990er-Jahren erkannten Websites die Fähigkeiten eines Browsers, indem sie prüften, ob der User-Agent "Mozilla" enthielt (der Codename des damaligen Marktführers Netscape Navigator). Als Internet Explorer denselben "fortgeschrittenen" Inhalt ausgeliefert bekommen wollte, begann er ebenfalls, "Mozilla" in seinen User-Agent aufzunehmen — und dieser Präzedenzfall hat sich bis heute gehalten.

Firefox und deutsches Datenschutzbewusstsein

Deutschland gehört traditionell zu den Ländern mit überdurchschnittlichem Firefox-Marktanteil im Vergleich zum weltweiten Durchschnitt — ein Effekt, der oft mit einem ausgeprägten Datenschutzbewusstsein und einer starken Open-Source-Community in Verbindung gebracht wird. Für die Auswertung von User-Agent-Strings bedeutet das: Wer Statistiken nur auf Chrome/Safari optimiert, unterschätzt in deutschsprachigen Logs leicht den Firefox-Anteil.

Warum die Erkennung per User-Agent unzuverlässig ist

Da jeder neue Browser aus Kompatibilitätsgründen die Tokens seiner Vorgänger in den User-Agent übernimmt, ist die Zeichenkette zu einem Sammelsurium historischer Artefakte geworden statt zu einer präzisen Beschreibung des Browsers. Die heutige Best Practice ist, gezielt die Unterstützung konkreter JavaScript-/CSS-Funktionen zu prüfen, statt den User-Agent zu parsen.

Wofür man das braucht

  • Kompatibilitätsprobleme diagnostizieren, indem man genau prüft, welchen Browser und welche Version ein Client meldet.
  • Server-Logs verstehen, in denen der User-Agent von Besuchern protokolliert wird.
  • Nachvollziehen, warum alter, User-Agent-basierter Erkennungscode häufig falschliegt.

User-Agent Client Hints als Ersatz

Statt eine einzige überladene Zeichenkette zu parsen, unterstützen moderne Chromium-basierte Browser inzwischen User-Agent Client Hints — separate Header wie Sec-CH-UA, Sec-CH-UA-Platform und Sec-CH-UA-Mobile, die ein Server explizit anfordern muss und in strukturierter Form erhält. Das ist Teil einer breiteren "User-Agent Reduction"-Initiative zugunsten der Privatsphäre, sodass die klassische User-Agent-Zeichenkette mit der Zeit immer weniger Details enthalten wird.

Tool ausprobieren