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.