Alexander Stannigel www.alexander-stannigel.eu
Alexander Stannigel www.alexander-stannigel.eu Geschichte der User-Agent-Strings

Die Geschichte der User-Agent-Strings

User-Agent-Strings identifizieren Browser … sollten Sie zumindest.
Wie und warum sie das nicht tun:
Original aus dem Englischen: History of the browser user-agent string von Aaron Andersen, September 2008

Das Tor zum Universum

Am Anfang war «NCSA Mosaic», und Mosaic nannte sich selbst
NCSA_Mosaic/2.0 (Windows 3.1)
Und Mosaic konnte Bilder und Text anzeigen, und die Freude war groß.
Und siehe, es kam ein neuer Webbrowser, der «Mozilla» genannt wurde – kurz für «Mosaic Killer». Aber Mosaic war nicht erfreut darüber und so nannte sich Mozilla öffentlich Netscape, doch Netscape bezeichnete sich selbst
Mozilla/1.0 (Win3.1)
Und die Freude war noch größer.
Und Netscape unterstützte Frames, und Frames wurden im Volk beliebt, aber Mosaic bot keine Unterstützung für Frames. Und so kam bald das «User Agent Sniffing» auf und Webmaster sendeten an Mozilla Frames und an andere Browser keine Frames.

Aufbruch in eine neue Welt

Und Netscape sprach, lasst uns über Microsoft lustig machen und Windows als «schlecht debuggte Gerätetreiber» verspotten. Und Microsoft ward wütend. Also schuf Microsoft einen eigenen Webbrowser, den sie «Internet Explorer» nannten und von dem sie hofften, er würde ein «Netscape Killer».
Und Internet Explorer unterstützte Frames und war doch nicht Mozilla und erhielt so keine Frames. Und Microsoft ward ungeduldig wollte nicht warten, bis sich die Kunde vom IE zu den Webmastern verbreitete und sie Frames sendeten. Also deklarierte Internet Explorer dass er «zu Mozilla kompatibel» sei und begann sich als Netscape auszugeben und nannte sich
Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)
Und der Internet Explorer erhielt von diesem Augenblick an Frames und ganz Microsoft war glücklich. Aber die Webmaster waren verwirrt.

Tabula Rasa

Und Microsoft verkaufte den IE mit Windows und machte ihn besser als Netscape und der erste Browserkrieg wütete und verwüstete das Land.
Und siehe, Netscape ging unter, und die Freude bei Microsoft war groß. Aber Netscape wurde als «Mozilla Foundation» wiedergeboren, und Mozilla schuf die Rendering-Engine «Gecko» und nannte sich selbst
Mozilla/5.0 (Windows; U; Windows NT 5.0; En-US; Rv:1.1) Gecko/20020826
Und Gecko war gut.

Evolution

Und aus Mozilla ward «Firefox» und dieser nannte sich selbst von nun an
Mozilla/5.0 (Windows; U; Windows NT 5.1; Sv-SE; Rv:1.7.5) Gecko/20041108 Firefox/1.0
Und Firefox war sehr gut.
Und Gecko wurde viele und andere Browser entstanden aus seinem Code und der eine – «Camino» – nannte sich
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.2) Gecko/20040825 Camino/0.8.1
oder der andere – «SeaMonkey» –
Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.8) Gecko/20071008 SeaMonkey/1.0
Und sie alle gaben vor Mozilla zu sein und alle wurden von Gecko dargestellt.
Und Gecko war gut, besser als IE, der alt wurde und nicht mehr gut war, und so wurde das Sniffing wiederentdeckt und Gecko wurde guter Web-Code gegeben und allen anderen Browser nicht.
Und die Anhänger von Linux waren besorgt, da sie «Konqueror» erschufen, dessen Renderer «KHTML» war. Sie hielten ihn für gleichwertig zu Gecko, war aber nicht Gecko, und bekam also nicht die guten Seiten. Also begann Konqueror vorzugeben, «wie Gecko» zu sein, um die guten Seiten zu bekommen und nannte sich selbst
Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko)
Und die Verwirrung war groß.

Kein Ende in Sicht

Und es kam «Opera» und sprach, doch wir sollten unsere Nutzer wählen lassen, als welcher Browser wir uns ausgeben. Also schuf Opera ein Menüelement und Opera nannte sich selbst je nach Nutzerentscheidung
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51
oder auch
Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51
oder einfach
Opera/9.51 (Windows NT 5.1; U; en)
Und Apple schuf «Safari», und baute dafür auf KHTML auf, aber fügte viele Funktionen hinzu, spaltete das Projekt ab und nannte es «WebKit», aber wollte auch die Seiten für KHTML erhalten und so nannte Safari sich selbst
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5
Und es wurde immer schlimmer.

Der Kreis schließt sich

Und Microsoft fürchtete Firefox erheblich und der Internet Explorer kehrte zurück und nannte sich selbst
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)
Und er renderte guten Code, aber nur so es die Webmaster geboten.
Und schließlich schuf Google «Chrome» und Chrome baute auf WebKit auf und es war wie Safari und wollte die für Safari bestimmten Seiten erhalten und gab sich also als Safari aus und WebKit gab sich als KHTML aus und KHTML gab sich als Gecko aus und alle Browser gaben sich als Mozilla aus und so nannte sich Chrome am Ende
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13
Und der User-Agent-String war ein vollständiges Chaos und nahezu nutzlos und jeder gab sich als jeder andere aus und die Verwirrung ward für ewig in Stein gehalten.

Dieses (bisher) letzte Kapitel schrieb ich als Ergänzung zu Aarons originalem Artikel, November 2009

Möbius

Und so dachte man, dass es nicht mehr übler käme. Aber da die Sniffer noch immer ein Gräuel waren und nur die erste Ziffer prüften sah sich Opera in der Notlage seinen Browser der zehnten Generation als einen der neunten auszugeben, da die Webserver sonst einen Browser der ersten Generation als Gegenüber zu erkennen glaubten. Und so nennt sich Opera 10
Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.00
anstelle wie noch in der Alpha-Version
Opera/10.00 (Windows NT 5.1; U; en) Presto/2.2.0
Und so wird das Chaos in den User-Agent-Strings durch die Unfähigkeit der Menschheit immer weiter verbreitet.