Warum ist HTTP/2.0 schneller als HTTP/1.1?

c41566d6b4854f8582d36fd273e02c6c

Das im Mai 2015 veröffentlichte HTTP/2 Protokoll ist der Nachfolger von HTTP/1.1. Zielsetzung bei der Entwicklung von HTTP/2 Protokoll war vor allem ist die Beschleunigung und Optimierung von Übertragungsprozessen im Internet. Bewahrt sollte außerdem eine Abwärtskompatibilität zum bisherigen Standard HTTP/1.1.

Wichtige Neuerungen auf einem Blick

mehrere Anfragen können zusammengefasst werden,
neue Datenkompressionsmöglichkeiten,
binär kodierte Übertragung von Inhalten,
Server-initiierte Datenübertragungen (push-Verfahren),
Priorisierung einzelner Streams

Der größte Geschwindigkeitsvorteil erklärt sich aus der Möglichkeit, mehrere Abfragen zusammen fassen zu können (Multiplex), ohne nach jeder einzelnen Abfrage die Verbindung zu schließen, um bei der nächsten Anfrage eine neue Verbindung aufbauen zu müssen.

Bei der neuen Datenkompression ist von Vorteil, das dank des neuen Algorithmus HPACK auch HEASDER-Informationen komprimiert werden.

HTTP/2 in Aktion

Hier siehst du ein kurzes Beispiel-Video von ImageKit Image CDN, das den Leistungsunterschied beim Laden mehrerer paralleler Anfragen über HTTP/2 im Vergleich zu HTTP/1.1 sehr schön zeigt. Die beiden Bilder im Video bestehen jeweils aus 100 kleineren Bildern. Beide Seiten werden gleichzeitig aufgerufen. Das Bild im linken Browser verwendet das neue und schnellere HTTP/2-Protokoll, während das Bild im rechten Browser noch mit HTTP/1.1 über den Monitor zuckelt.

3x schneller mit HTTP/2

Die Website in dieser Demo ist mit Hilfe des HTTP/2 Protokoll ca. 3x schneller aufgebaut, als die gleiche Website mit dem älteren HTPP/1.1 Übertragungsprotokoll.

Zusammenfassung

HTTP/2.0 bietet im Vergleich zu HTTP/1.1 verschiedene Verbesserungen, die es schneller und effizienter machen:

  1. Multiplexing: In HTTP/1.1 wird jede Datei- oder Ressourcenanforderung über eine eigene TCP-Verbindung gesendet, was zu einer Verzögerung aufgrund des Aufbaus mehrerer Verbindungen führt. HTTP/2.0 ermöglicht das Multiplexing mehrerer Anfragen über eine einzige TCP-Verbindung. Dies reduziert die Latenz, da mehrere Anfragen und Antworten gleichzeitig übertragen werden können.
  2. Header-Kompression: HTTP/2.0 verwendet den HPACK-Kompressionsmechanismus, um HTTP-Header zu komprimieren. Da Header-Informationen in HTTP/1.1 bei jeder Anfrage und Antwort wiederholt werden und oft redundant sind, reduziert ihre Kompression die Menge an zu übertragenden Daten erheblich.
  3. Server Push: In HTTP/2.0 kann der Server Ressourcen proaktiv an den Client senden, bevor dieser sie explizit anfordert. Dies spart Zeit, da der Server antizipieren kann, welche Ressourcen der Client benötigen wird, und diese im Voraus senden kann.
  4. Priorisierung von Anfragen: HTTP/2.0 ermöglicht es Clients, Anfragen zu priorisieren, sodass wichtige Ressourcen zuerst geladen werden. Dies verbessert die Leistung bei der Ressourcenübertragung, insbesondere bei Webseiten mit vielen Elementen.
  5. Verbessertes Management von Netzwerkressourcen: Durch das Multiplexing und die verbesserte Priorisierung kann HTTP/2.0 die Netzwerkressourcen effizienter nutzen. Dies führt zu einer reduzierten Netzwerkbelastung und verbesserten Ladezeiten für den Endbenutzer.

Insgesamt macht die Kombination dieser Verbesserungen HTTP/2.0 effizienter und schneller als HTTP/1.1, insbesondere in Umgebungen mit hoher Latenz und vielen parallelen Anfragen.