SPDY hält Einzug in den Firefox

SPDY ist schon seit längerem im Chrome im Einsatz – hält sich dort aber im Hintergrund. Der Browser schaltet automatisch von HTTP um, wenn Daten von einem Google Server abgerufen werden. Da SPDY wie HTTP auf TCP aufsetzt, bedarf es in der Infrastruktur keiner Anpassung, allerdings muss der Webserver das Anfrageprotokoll unterstützen. Bisher tun das die wenigsten Webserver. Aber das könnte sich bald ändern.

Wie bekannt gegeben wurde, wird SPDY in den Mozilla Sourcecode aufgenommen und soll ab Version 11 freigegeben werden – also im ersten Quartal 2012. Damit kommt der potentielle HTTP-Nachfolger weltweit schlagartig auf 50% Marktanteil. Das macht es für die Hersteller von Webservern attraktiv, sich mit dem neuen Protokoll zu beschäftigen. Google hat bereits vorgelegt und ein bislang wenig verbreitetes Modul für den Apache Webserver und auch für NodeJS veröffentlicht.

Im Wesentlichen ist SPDY dem Hypertext Transfer Protocol überlegen, weil es sich besser an den aktuellen Anforderungen orientiert. Durch die steigende Komplexität von Webseiten werden pro Seitenaufruf mehr unterschiedliche Ressourcen (Text, Grafiken, Styles, Skripte…) benötigt. SPDY kann pro Anfrage mehrere Ressourcen auf einmal anfragen, führt eine Priorisierung ein und sorgt durch Komprimierung für weniger Traffic bei gleichzeitig hoher Sicherheit (durch Verschlüsselung). Darüber hinaus kann der Webserver den Client kontaktieren, um Ressourcen nachzuliefern.

Für Neugierige: Wie Golem berichtet, lässt sich SPDY im Tree „mozilla-inbound“ bereits aktivieren. Über about:config reicht dazu ein Eintrag true bei network.http.spdy.enabled.

Welche Browser besuchen meine Webseite?

Ein Blick in die Statistiken zeigt, dass Firefox in Bezug auf die Seitenzugriffe weiterhin dominiert. Für mich ein wenig überraschend finden sich die mobilen Browser auf dem zweiten Platz; hinter „Mobile Safari“ in der Statistik verbirgt sich Android, in allen Fällen die Version 2.3. Es folgen halbwegs aktuelle Versionen von Safari und Chrome und erst hinter der veralteten Firefox-Version 3.6 kommen die unterschiedlichen Ausführungen des Internet Explorers mit zusammengerechnet 14%. Abgeschlagen sind Opera, und der Firefox 5 bis 6.

Was kann man aus dem Ergebnis für Schlüsse ziehen?

Zum einen zeigen die Zahlen ein sehr europäisches Bild. Global ist die Verteilung erfahrungsgemäß eine andere, der Internet Explorer sitzt mit 40% zwar auf dem höchsten, aber einem absteigenden Ast. Darum wollen wir uns aber nicht scheren. Globale Statistiken kann man sich übrigens kostenlos bei Statcounter.com ansehen.

Viel interessanter ist, dass ich es vornehmlich mit aktuellen Browsern zu tun habe, die auch entsprechend neue Standards wie HTML5, CSS3, Websockets, Geolocation, Local Storage und derer mehr unterstützen. Rund 80% der Zugriffe zähle ich zu diesen Browsern, Grund genug, weiter konsequent auf neue Technik zu setzen und für alte Browserversionen keine Workarounds mehr zu bauen.

Auffällig ist weiterhin, dass der Firefox 3.6 noch relativ stark vertreten ist und seine Nachfolger 5 und 6 in den Schatten stellt. Ich erkläre mir das damit, dass diese mittlerweile doch recht alte Version in Unternehmen als Alternative zum Internet Explorer beliebt wurde und dort wohl immer noch im Einsatz ist. In die gleiche Kerbe schlägt meines Erachtens der IE7

Nicht vergessen: die Zahlen zum Text

Browser Anteil
Firefox 7.0 25%
Firefox 8.0 13%
Mobile Safari 4.0 13%
Safari 5.1 10%
Chrome 15.0 8%
Chrome 12.0 7%
Firefox 3.6 6%
Internet Explorer 7.0 6%
Internet Explorer 8.0 5%
Internet Explorer 9.0 3%
Chrome 17.0 2%
Opera 11.5 2%
Firefox 6.0 2%
Chrome 14.0 1%
Firefox 5.0 1%
Googlebot 2.1 1%

Browser aus dem HTTP User Agent ermitteln

Der Höhepunkt für Browserweichen ist gottlob vorüber, seitdem auch Schwergewichte wie Microsoft Besserung bezüglich der Standardkonformität des Internet Explorers versprechen. Darüber hinaus existieren mittlerweile ausreichend Bibliotheken und Frameworks für HTML, JavaScript und CSS, die dem Web-Entwickler diese Aufgabe abnehmen.

Nichtsdestotrotz ergibt sich immer wieder die Notwendigkeit, den verwendeten Browser und darüber hinaus die Version serverseitig zu ermitteln; das Sammeln von Statistiken ist nur ein Anwendungsfall. Auf der Suche nach einer schlanken, schnellen Bibliothek, die dies in PHP erledigt, bin ich bei phpclasses.org fündig geworden. Die Klasse Browser_Info war vielversprechend, aber scheinbar für die Objektorientierung von PHP 4 geschrieben und damit veraltet. Die aufgepeppte Version findet ihr hier (Link nebenstehend). Anstatt eine Sammlung aktueller und vergangener Browser festzuschreiben und per Stringvergleich nach der richtigen Alternative zu suchen, bemüht die Klasse reguläre Ausdrücke und funktioniert auch für zukünftige Ableger – sofern Mozilla, Apple, Microsoft, Google und die übrigen Hersteller ihre Schematik für den HTTP User Agent nicht verändern.

Der Download beinhaltet neben der Klasse auch eine festgelegte Liste mit UseCases, anhand derer der Code getestet worden ist, und ein Formular-Skript zum Eingeben beliebiger User Agents. Lizenztechnisch orientiert sich die Neuauflage der Klasse am Vorbild und ist frei für den nicht-kommerziellen Gebrauch.

Update 28.01.2011

Ich habe die Klasse auf en neuesten Stand gebracht – basierend auf den Statistiken meiner eigenen Webseiten. Es sind unter anderen einige Crawler hinzugekommen, die ich in der ersten Version bewusst rausgelassen habe. Zum anderen habe ich einen Bug mit der Erkennung von Chrome behoben. Bislang ließen sich nur einstellige Hauptversionsnummern erkennen, da die Versionen von Chrome aber schnell fortschreiten, sind wir mittlerweile bei Version 10 angekommen (zumindest im Chrome Canary).