6 Punkte von kunggom 2020-01-15 | Noch keine Kommentare. | Auf WhatsApp teilen

Bei der Webentwicklung kommt es häufig vor, dass je nach Webbrowser oder Betriebssystem unterschiedliche Ansichten angezeigt werden sollen oder die Plattform der Besucher statistisch erfasst werden muss. Eines der Mittel dafür ist der [User-Agent](User Agent)-String, den der Webbrowser dem HTTP-Request-Header hinzufügt. Diese Methode, Plattform und Browser darüber zu unterscheiden, ist zwar weit verbreitet, aber der String selbst ist bereits seit der Netscape-Ära aus Gründen wie Kompatibilität verwirrend und schwer verständlich verstrickt. Heute ist es erst recht nicht besser – fast alle Browser geben sich als andere Browser aus. Zum Beispiel sieht der User-Agent-String eines Browsers, den ich verwende, so aus:

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4003.0 Safari/537.36 Edg/81.0.381.0

Wenn man ohne weiteres Vorwissen nur diesen User-Agent-String hätte, wäre es praktisch unmöglich zu erkennen, um welchen Browser es sich handelt. Mozilla Firefox? Chrome? Safari? Edge? Die richtige Antwort ist die Dev-Version von Microsoft Edge. Immerhin lässt sich die verwendete Plattform noch einigermaßen erahnen, aber wenn man diesen String parsen will, um die Plattform zu bestimmen, wird es ebenfalls schnell unerquicklich.

Um dieses Problem zu lösen, hat Google vorgeschlagen, den User-Agent-String schrittweise außer Betrieb zu nehmen und stattdessen [Client Hints](Client Hints) zu verwenden. Client Hints bedeutet dabei, die Informationen, die derzeit im User-Agent-String enthalten sind, in sieben Felder aufzuteilen (Browsername / Browser-Hauptversion / vollständige Browserversion / Plattformname und -version / Plattformarchitektur / Hardware-Modellname / Mobilgerät ja oder nein) und sie dem HTTP-Request-Header hinzuzufügen.

Google plant, noch in diesem Jahr (2020) den User-Agent-String in Google Chrome einzufrieren, sodass er sich nicht mehr verändert (wegen Kompatibilitätsproblemen kann er nicht entfernt werden), und stattdessen mit der Nutzung dieser Client Hints zu beginnen. Andere große Browserhersteller wie Mozilla, Apple und Microsoft scheinen ebenfalls Unterstützung dafür zu planen, konkrete Details gibt es aber noch nicht. Wenn auch andere Webbrowser damit anfangen, dürfte die Verbreitung wohl keine großen Schwierigkeiten machen. Mit Blick auf Googles Verhalten, Dienste für andere Browser als den eigenen schlechter zu behandeln, fällt es jedoch schwer, diesen Vorschlag vorbehaltlos zu begrüßen.

Googles Vorschlag zu Client Hints:

https://wicg.github.io/ua-client-hints/

Die Geschichte des User-Agent-Strings:

http://millky.com/@origoni/post/566

Noch keine Kommentare.

Noch keine Kommentare.