Mit einer vernünftigen Backup-Strategie wappnen sich Administratoren erfolgreich gegen Datenverluste und längere Systemausfälle. So zeigen wir Ihnen ... (mehr)

HTTP/2 in der Praxis

Umgesetzt ist HTTP/2 schon im Java-Web- und Applikationsserver Jetty, dessen Entwickler bereits die letzten Drafts implementiert haben. In Version 9.3 gibt es eine Implementation der endgültigen Spezifikation. Auf Basis unterschiedlicher HTTP/2-Drafts wurde das Protokoll in verschiedenen Programmiersprachen implementiert [2]. Als dieser Artikel entstand, gab es immerhin schon zwei Umsetzungen der finalen Version in C++ (von Twitter) und in Go.

Auch der Browser-Support für HTTP/2 wird langsam vollständig. Google hat das neue Protokoll in Chrome implementiert, der Support von SPDY soll Anfang 2016 auslaufen. Außerdem soll die TLS-Erweiterung NPN (Next Protocol Negotiation) durch ALPN (Application-Layer Protocol Negotiation) ersetzt werden, um wie erwähnt das in einer TLS-verschlüsselten Verbindung verwendete Protokoll auszuhandeln. Auch in Firefox ist seit Version 36 der Support für HTTP/2 integriert. Beim Internet Explorer können Anwender der Windows 10 Technical Preview mit HTTP/2 experimentieren. Bild 1 gibt einen Überblick über den Status der Implementation in diversen Browsern.

Auf der Serverseite müssen die Entwickler meist etwas größere Umbauten vornehmen, um ihre Software fit für HTTP/2 zu machen. So berichtet Owen Garrett von Nginx, dass viele Arbeiten am Kern des Webservers nötig waren, um eine leistungsfähige Implementierung von SPDY zu erreichen. Der Lohn dafür sei allerdings, dass derzeit beinahe 95 Prozent aller SPDY-fähigen Webserver auf Nginx laufen. Der Umbau auf HTTP/2 sollte nun einfacher vonstatten gehen und Ende 2015 abgeschlossen sein.

Ein Sorgenkind ist dagegen der populäre Webserver Apache. Hier gibt es einige Vorarbeiten von Google, das ein SPDY-Modul für Apache geschrieben und es später an die Apache Software Foundation übergeben hat. Seither ist damit aber wenig passiert und über offizielle Pläne hinsichtlich HTTP/2 ist bisher nichts bekannt. Ein Third-Party-Modul auf Github mit dem Namen "mod_h2" befindet sich noch im Anfangsstadium [3]. Interessanterweise bringt die Windows 10 Technical Preview sogar eine Version des Internet Information Server (IIS) mit, der HTTP/2 beherrscht.

Kritik an HTTP/2

Nicht alle sind gleichermaßen glücklich über das Ergebnis der HTTP-Reformation. So hat etwa der bekannte BSD-Programmierer Poul Henning Kamp mehrfach seine Unzufriedenheit geäußert und verschiedene Mängel des Protokolls thematisiert, zuletzt in einem Artikel in der "ACM Queue" unter dem Titel "HTTP/2.0 – The IETF is Phoning It In. Bad protocol, bad politics". So sei beispielsweise ein Resultat der "Politics", dass HTTP/2 wie bereits erwähnt auf verpflichtende Verschlüsselung verzichte und damit hinsichtlich des Datenschutzes keinen Fortschritt erziele. In Varnish, einem weit verbreiteten HTTP-Beschleuniger-Proxy, den Poul Henning Kamp entwickelt, will er HTTP/2 aber trotzdem einbauen.

Clientseitig gute Aussichten: In den meisten Browsern ist HTTP/2 bereits implementiert.

Auch Greg Wilkins, der Chefentwickler von Jetty, hat bereits während der Arbeit an dem Standard seine Vorbehalte in der Working Group geäußert. Seiner Meinung nach stand die Working Group von Anfang an vor dem Problem, die als Aufgabe für die Standardisierung vorgeschriebenen Ziele miteinander in Einklang zu bringen, die teilweise im Widerspruch zueinander standen, etwa die Verbesserung der Performance für den Endanwender und den verbreiteten Missbrauch des HTTP-Protokolls durch immer neue Workarounds.

Letztlich wurden nach Wilkins' Ansicht alle anderen Ziele der Performance untergeordnet, was zum Beispiel dazu führt, dass es nun keine saubere Trennung der Netzwerkschichten mehr gibt. Header und Anwendungsdaten werden gleichermaßen in Pakete zerlegt und über denselben Kanal verschickt, wobei die Header eine Vorzugsbehandlung bekommen. Deshalb sieht Wilkins hier bereits den Missbrauch des neuen Protokolls heraufziehen, den eine neue Spezifikation eigentlich hätte verhindern sollen. Zudem sei die Websocket-Semantik nicht ausreichend berücksichtigt, weil dem Protokoll immer noch das alte HTTP-Schema zugrunde liegt.

Interessanterweise gibt es bisher wenige fundierte Aussagen darüber, ob und wieviel Performance-Gewinn HTTP/2 überhaupt bringt. Bei SPDY hat Google einige Tests durchgeführt, die im besten Fall eine um 64 Prozent reduzierte Ladezeit von Webseiten ergeben haben. Eine Studie von AT&T, die von der Open Web Alliance zitiert wird, behauptet gar, SPDY (und damit wohl auch HTTP/2) bringe in Mobilfunknetzen gegenüber HTTP gar keine geringeren Latenzen.

Ein im Januar von HTTPWatch durchgeführter Tests zeigt durchgehend Geschwindigkeitsvorteile von HTTP/2 und SPDY – allerdings im Vergleich mit HTTPS. Generell hängt der Grad der Beschleunigung stark davon ab, wie die ausgelieferten Webseiten aufgebaut sind, etwa wie groß der HTML-Quellcode ist und wieviele andere Elemente eingebaut sind. Wer zum Beispiel einen Webservice betreibt oder in Anspruch nimmt, wird wenig von HTTP/2 profitieren.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019