Frank PientkaInnovation und Technologie

Ein neues Protokoll für das Internet – Zum HTTP 2.0-Protokoll bitte!

Das World Wide Web (WWW) hat einen großen Anteil daran, dass sich das Wissen und die Daten rasant verbreiten. Noch vor zehn Jahren hat es fünf bis sieben Jahre gedauert, bis sich das Wissen der Welt verdoppelt hat. Heute reichen dazu zwei Jahre.

Das WWW und dessen Basisprotokoll HTTP (Hypertext Transfer Protocol) zum Ausliefern von Ressourcen sind in die Jahre gekommen. Es ist genau genommen über 25 Jahre alt.

Ein Erfolgsfaktor des WWW und seiner Dienste ist sicherlich die ausgereifte und stabile Infrastruktur. Doch wie jede Infrastruktur einmal ist auch diese in die Jahre gekommen. Um mit den aktuellen Anforderungen hinsichtlich Geschwindigkeit und Sicherheit mithalten zu können, wurde von großen Internet-Firmen wie Google, Mozilla und Akamai das HTTP 1.0-Nachfolgeprotokoll entwickelt.

Die Internet Engineering Task Force (IETF) hat im Februar 2015 den HTTP/2-Standard als RFC 7540 sowie die damit verbundene Header-Kompression als RFC 7541 veröffentlicht, der vollständig abwärtskompatibel zu HTTP/1.1 ist.

Ein fundamentaler Wechsel von http 1.0 zu 2.0 ist vom textbasierten Protokoll zu einem binär codierten. Eine gute Zusammenstellung und Erläuterung zum neunen HTTP 2.0-Protokoll findet sich auf folgenden Seiten: http2 explained, http2, HTTP/2 is the future of the Web, Chapter 12. HTTP/2 und Architecting Websites For The HTTP/2 Era.

Etwas interaktiver wird HTTP 2.0 in einem Video von Mark Nottingham vorgestellt.

Wie sich die Ladzeiten mit HTTP 2.0 verbessern lassen, wird in der Akamai Community mit einer interaktiven Demoanwendung gezeigt.

Zu den wichtigsten Änderungen von HTTP 2.0 zählen ein beschleunigte Auslieferung von Binär-Inhalten, die Datenkompression der Kopfdaten mit dem HPACK-Algorithmus, die Möglichkeit, mehrere Anfragen in einer Pipeline zusammen zufassen und mit priorisierten Streams und Multiplexing paralleler auszuliefern. Mit Push-Anfragen vom Server wird eine asynchrone Kommunikation ermöglicht.

Viele HTTP 1.0 spezifische Optimierungen, wie z. B. CSS Sprites und eingebettete Bilder, werden in HTTP 2.0 nicht mehr benötigt. Inzwischen wird das HTTP 2.0 Protokoll von vielen aktuellen Browsern und von http-Werkzeugen wie curl und Webservern, wie Akamai Edge Server, F5 Networks Loadbalancer, Nginx Plus7, Apache Traffic Server 6, Jetty 9, Wildfly 9, IIS unter Windows 10 und Apache HTTPD 2.4.1 mit dem Modul mod_h[ttp]2, unterstützt.

Wer seinen eigenen Browser auf HTTP 2.0-Unterstützung testen möchte, kann dies HTML5 Test tun. Einen im Web verfügbaren Server kann man HTTP 2.0-Unterstützung auf HTTP 2.0-Unterstützung testen.

Viele Seiten wurden, im Nachgang zu den bekannt gewordenen Sicherheitslücken im SSL-Protokoll, im letzten Jahr bereits auf das von vielen modernen Browsern für das HTTP 2.0 Protokoll erzwungene TLS 1.2-Verschlüsselungsprotokoll umgestellt.

Für das Aushandeln der TLS-Verschlüsselung wird das Application-Layer Protocol Negotiation (ALPN) verwendet. Dieses wird auf der Server-Seite nur in aktuellen Versionen von OpenSSL oder erst mit Java 9 unterstützt.

An dem Aufbau der bekannten HTTP-URLs wird sich nichts ändern, da HTTP 2.0 über einen Upgrade-Mechanismus (Upgrade: h2c) im Header automatisch beim Verbindungsaufbau umgestellt wird.

Langfristig wird HTTP/1.1 noch lang existieren, da allein die große Anzahl von alten Hard- und Software-Infrastrukturkomponenten nicht so schnell oder ohne Austausch umgestellt werden kann. Trotzdem ist jetzt ein guter Zeitpunkt, um sich mit den Neuerungen von HTTP 2.0 zu beschäftigen und seine Infrastruktur schon mal schrittweise für die Zukunft fit zu machen.

Schlagwörter: ,