HTTP/2 – das neue Protokoll fürs Internet

HTTP/2 komprimiert Daten und erlaubt Server-Pushs

von - 14.03.2015
Eine große Webseite braucht zum vollständigen Laden gut 50 HTTP-Anfragen. Dadurch entsteht ein nicht unerheblicher HTTP-Overhead. Hier setzt die neue Komprimierungsfunk­tion von HTTP/2 an, bei der ein neuer Algorithmus namens HPACK zum Einsatz kommt. Er schließt auch die HTTP-Header ein und reduziert damit das Datenaufkommen. HTTP/2 überträgt zudem die Inhalte binär codiert. Binäre Daten lassen sich effizienter analysieren, sind kompakter und weniger fehleranfällig als textbasierte Protokolle wie HTTP 1.x.

Push-Funktion

Um nicht auf Folgeanfragen vom Client warten zu müssen, kann der Server auch selbst Datenübertragungen initiieren. Man spricht hier vom Push-Verfahren.
Mit HTTP/2 kann ein Server also von sich aus Daten auf den Weg schicken, von denen er annimmt, dass der Client sie ohnehin gleich braucht. Das erspart dem Client gesonderte Anfragen etwa für Javascripts oder CSS-Dateien.

HTTP/2 versus HTTP 1.1

HTTP 1.1

Dauer

HTTP/2

Dauer

Der Client baut eine TCP-Verbindung zum Server auf

1 RTT für SYN/SYN-ACK

Der Client baut eine TCP-Verbindung zum Server auf

1 RTT für SYN/SYN-ACK

Der Client sendet GET für die Datei „index.html“

1 RTT

Der Client sendet GET für die Datei „index.html“ und erhält per Push vom Server die Dateien „javascript.js“ und „stylesheet.css“

1 RTT

Parsing: Der Client liest „index.html“ und muss „javascript.js“ und „stylesheet.css“ nachladen

10 ms

Der Client sendet GET für „javascript.js“ auf der bestehenden Verbindung

1 RTT

Der Client baut eine zweite TCP-Verbindung auf

1 RTT für SYN/SYN-ACK

Der Client sendet GET für „stylesheet.css“

1 RTT

Summe

5 RTT + 10 ms

2 RTT

Für eine gewöhnliche Webseite mit Javascript und Stylesheet werden mit dem neuen Protokoll nur zwei Round Trip Times (RTT) benötigt – gegenüber fünf RTT plus die Zeit fürs Parsing bei HTTP 1.1.

Sicherheit

Mit HTTP/2 ändert sich auch in Sachen Sicherheit einiges: Die HTTP-Arbeitsgruppe hatte sich zwar zunächst weitgehend darauf verständigt, alle Datentransfers bei HTTP/2 verschlüsselt abzuwickeln. Es sollte nur noch URLs mit https:// geben. Diese Haltung hat das Gremium aber wieder aufgegeben. Nun soll Verschlüsselung per TLS – Transport Layer Security – anders als bei SPDY bei HTTP/2 nicht obligatorisch sein.
Die Möglichkeit, HTTP/2 auch unverschlüsselt zu verwenden, wollte die Arbeitsgruppe nicht komplett ausschließen, etwa weil Proxy- und Firewall-Hersteller Zugriff auf die Inhalte benötigen. Die Entwickler von Chrome und Firefox haben jedoch angekündigt, HTTP/2 nur über verschlüsselte Verbindungen zu unterstützen.

Unternehmensnetzwerke

Der neue Standard soll vollständig abwärtskompatibel zu HTTP 1.1 sein. System-Administratoren und Entwickler müssen also nicht Monate damit verbringen, ältere Websites zu aktualisieren oder die Unternehmensnetzwerke anzupassen. Die Reduzierung von Anfragen an die Server und die damit einhergehende Reduzierung der Verbindungen nimmt viel Last aus dem Unternehmensnetzwerk.
Microsoft hat die Unterstützung von HTTP/2 mit der neuen Version des Internet Explorers angekündigt, die das Unternehmen vo­raussichtlich im Herbst zusammen mit Windows 10 ausliefern will.
Verwandte Themen