Was ist HTTP/3 und wie unterscheidet es sich von HTTP/2?

Was ist HTTP/3 und wie unterscheidet es sich von HTTP/2?

Hypertext Transfer Protocol (HTTP) ist das Kernprotokoll des World Wide Web, das als Portal für die Kommunikation zwischen Webbrowsern und Servern dient. Es gibt verschiedene Versionen von HTTP, von denen die neuesten HTTP/2 und HTTP/3 sind. Dieser Artikel bietet eine vergleichende Analyse von HTTP/2 und HTTP/3 und erklärt, warum Sie zu letzterem wechseln sollten.

Was ist HTTP/3?

HTTP/3 ist ein deutlicher Fortschritt gegenüber HTTP/2. Es wird über QUIC aufgebaut, ein Transportprotokoll, das sich durch Eigenschaften wie verbesserte Leistung, geringere Latenzzeiten, erhöhte Sicherheit und bessere Bewältigung von Netzschwankungen auszeichnet.

Die dritte Generation des Protokolls

HTTP/3 ist die neueste Generation von HTTP. In der nachstehenden Tabelle sind die früheren Versionen, das Erscheinungsjahr, die Spezifikationen und die wichtigsten Funktionen aufgeführt.

HTTP-VersionVeröffentlichtSpezifikationWesentliche Merkmale
HTTP/0.91991Keine RFC-NummerEinzeiliges Protokoll nur mit GET
HTTP/11996RFC 1945Statuscodes, HTTP-Header, POST und HEAD
HTTP/1.11997RFC 9112Keep-alive-Verbindung, weitere HTTP-Funktionalitäten
HTTP/22015RFC 9113TCP (Transmission Control Protocol), eine neue binäre Framing-Schicht, Multiplexing, Header-Kompression (HPACK), Server-seitiger Push
HTTP/32022RFC 9114QUIC über UDP (User Datagram Protocol), TLS als Standard, Header-Kompression (QPACK), Verbindungs-ID

HTTP/3 löst HTTP/2 ab, da es QUIC anstelle von TCP implementiert. Untersuchen wir also, warum QUIC besser ist als TCP und wie es zur Überlegenheit von HTTP/3 beiträgt.

HTTP über QUIC

QUIC wurde von Google entwickelt und läuft über UDP – ein verbindungsloses, leichtgewichtiges Protokoll. Lassen Sie uns drei Hauptvorteile von QUIC untersuchen:

  • TCP, das von HTTP/2 verwendet wird, überträgt und liefert Datenströme in genau der Reihenfolge, in der der Absender sie erzeugt hat. Dieser Ansatz verhindert zwar Paketverluste, ist aber auch die Hauptursache für das HOL-Blocking-Problem von HTTP/2. QUIC hingegen ist verbindungslos und ermöglicht Multiplexing auf der Transportschicht, wodurch das Head-of-Line-Blocking-Problem von TCP vermieden wird.
  • Da UDP keine Client-Server-Verbindung erfordert, erleichtert es die Datenübertragung über optimale Routen. Dieser Ansatz verfügt jedoch nicht über einen Mechanismus zur erneuten Übertragung von Daten, sodass er in der Regel zu Paketverlusten führt. QUIC löst dieses Problem durch Multiplex-Verbindungen auf höherer Ebene (damit mehrere Datenströme gleichzeitig und unabhängig voneinander übertragen werden können) und verhindert, dass sich Paketverluste in einem Datenstrom auf andere auswirken.
  • QUIC bietet eine Bandbreitenabschätzung sowohl in Server- als auch in Client-Richtung, um festzustellen, wie viele Daten ein Netz innerhalb einer bestimmten Sitzung übertragen kann, sowie Vorwärtsfehlerkorrektur-Funktionen (durch FEC-Pakete), um Fehler in instabilen Netzumgebungen zu vermeiden und die Leistung weiter zu verbessern.

Weitere Unterschiede zwischen HTTP/2 und HTTP/3

Abgesehen von den Unterschieden im Transportschichtprotokoll (TCP vs. QUIC) gibt es weitere Unterschiede zwischen HTTP/2 und HTTP/3:

UnterscheidungsmerkmaleHTTP/2HTTP/3
Protokoll der TransportschichtTCPQUIC, das über UDP arbeitet
Multiplexing & head-of-line (HOL)Aufgrund von Beschränkungen bei der Abstraktion von Byteströmen kommt es bei gemultiplexten Strömen häufig zu Head-of-Line-Blocking-ProblemenBietet Multiplexing ohne Head-of-Line-Blocking aufgrund von UDP’s Out-of-Order Delivery
FehlerbehandlungWeniger Möglichkeiten zur FehlerbehandlungVerbesserte Möglichkeiten der Fehlerbehandlung durch QUIC
TLS-VerschlüsselungTLS ist optionalTLS ist in QUIC und standardmäßig in HTTP/3 eingebettet
VerbindungsmigrationUnterstützt keine VerbindungsmigrationUnterstützt nahtlose Verbindungsmigration über Verbindungs-IDs (CIDs) (siehe unten)

HTTP/2- und HTTP/3-Stack-Vergleich

Abgesehen von den Unterschieden in ihren Angeboten sind HTTP/2 und HTTP/3 auch architektonisch verschieden.

HTTP/2 vs. HTTP/3

Die einzelnen Komponenten im Diagramm – und ihre Unterschiede zwischen HTTP/2 und HTTP/3 – werden im Folgenden erläutert.

HTTP-Semantik

HTTP-Semantiken sind die Ressourcen-Metadaten, die an Anfragen und Antworten angehängt sind. Dazu gehören Header-Felder für Anfragen und Statuscodes für Antworten. Die Semantik von HTTP/3 und HTTP/2 ist in Bezug auf das Datenformat und die Anfrage-/Antworttypen ähnlich. Die Reihenfolge ihrer Anordnung ist jedoch unterschiedlich.

  • HTTP/2 hat eine eigene Anwendungsschicht (HTTPS), eine optionale Sicherheitsschicht (TLS) und eine Transportschicht (TCP), die in dieser Reihenfolge angeordnet sind.
  • Die Schichten in HTTP/3 sind weniger klar voneinander abgegrenzt, wobei HTTPS die Anwendungsschicht ist, HTTPS und QUIC eine eingebaute Sicherheitsschicht bilden und QUIC und UDP die Transportschicht darstellen.

Die folgende Abbildung gibt einen Überblick über die Beziehungen zwischen den einzelnen Ebenen.

HTTP/2- vs. HTTP/3-Schichten

Header-Komprimierung

Hierbei handelt es sich um einen Mechanismus zur Komprimierung der Header (einschließlich IP-, UDP- und TCP-Header) von Datenpaketen vor dem Versand, um die Paketübertragung zu beschleunigen, den Bandbreitenverbrauch zu verringern und den Netzwerk-Overhead zu begrenzen. HTTP/2 verwendet HPACK für die Header- oder Feldkomprimierung, während HTTP/3 QPACK verwendet. Obwohl sowohl HPACK als auch QPACK effizient sind, arbeiten sie unterschiedlich, und während HPACK anfällig für HOL ist, ist QPACK es nicht.

Server-Push und Priorisierung

Beim Server-Push werden die Ressourcen von den Servern präventiv an die Clients gesendet, um die Latenzzeit zu verringern. Sowohl HTTP/2 als auch HTTP/3 unterstützen Server-Push. In HTTP/3 können die Clients jedoch die Anzahl der zulässigen Push-Nachrichten über die Push-Stream-ID festlegen, um die verschwendete Bandbreite zu verringern.

Stream-Multiplexing

Sowohl HTTP/2 als auch HTTP/3 unterstützen Multiplexing, sodass mehrere Anfragen und Antworten gleichzeitig über eine einzige Verbindung gesendet werden können. TCP, das von HTTP/2 verwendet wird, betrachtet jedoch jede Anfrage (auch gemultiplexte) als einen einzigen Bytestrom. Dieser von TCP verwendete Ansatz ist in der Regel die Ursache für HOL-Probleme beim Multiplex-Streaming in HTTP/2. In HTTP/3 wird dieses Problem durch die Implementierung von UDPs Out-of-Order-Delivery gelöst, bei der jeder Bytestrom unabhängig voneinander über das Netz transportiert wird.

TLS-Verschlüsselung (Transport Layer Security)

Beide Protokolle bieten TLS-Verschlüsselung. In HTTP/2 ist TLS jedoch optional, und die TLS-Verschlüsselung erfolgt über die gängigen Protokolle TLS 1.2 und TLS 1.3. In HTTP/3 wird die TLS-Verschlüsselung standardmäßig über den QUIC-Schlüsselaustauschmechanismus bereitgestellt, wodurch das Risiko des Abhörens, der Datenmanipulation und anderer Sicherheitsbedrohungen allgemein verringert wird.

Sitzungswiederaufnahme/0-RTT

Bei der Wiederaufnahme einer Sitzung werden die in früheren Übertragungen verwendeten Parameter wiederverwendet, ohne dass ein vollständiger Handshake eingeleitet wird. In HTTP/2 wird die Sitzungswiederaufnahme mit dem TLS-Sitzungsticket-Mechanismus implementiert, bei dem mindestens zwei Runden Handshakes – TCP & TLS – erforderlich sind, bevor die Verbindung wiederhergestellt werden kann. Andererseits nutzt HTTP/3 die 0-RTT-Funktion (zero round trip time resumption) von QUIC, die es den Clients ermöglicht, verschlüsselte Daten im ersten Paket des Handshake zu senden, was eine schnellere Wiederaufnahme früherer Sitzungen ermöglicht.

IPv4 / IPv6

IP-Adressen werden verwendet, um virtuelle Verbindungen zwischen Geräten und Netzen herzustellen. IPv4 verwendet 32-Bit-Adressen, während IPv6 128-Bit-Adressen verwendet. Sowohl HTTP/2 als auch HTTP/3 bedienen beide IP-Typen.

Andere besondere Merkmale von HTTP/3

Während der Stack-Vergleich ihrer jeweiligen Architektur wichtige Gründe für die Überlegenheit von HTTP/3 aufzeigt, gibt es noch weitere Merkmale, die HTTP/3 einen Vorteil gegenüber HTTP/2 verschaffen.

Weniger Handshakes, schnellere Verbindung

HTTP/3 stellt effiziente Verbindungen her und verringert die Latenzzeit, indem es die Anzahl der zum Verbindungsaufbau erforderlichen Handshakes reduziert. Bei HTTP/2 umfasst der Verbindungsaufbau eine Reihe von Handshakes zwischen dem Client und dem Server. Diese Handshakes führen zu zusätzlichen Umläufen und erhöhen die Latenzzeit beim Verbindungsaufbau.

Nahtlose Verbindungsmigration mit CID

Die Verbindungs-ID (CID) in HTTP/3 erleichtert die Migration, wenn ein Client das Netz oder das Gerät wechselt. Dank der CID-Funktion können Clients eine stabile Verbindung aufrechterhalten, ohne dass neue Handshakes erforderlich sind. Wenn der Client das Netz oder das Gerät wechselt, werden einfach die mit der Verbindung verbundenen Netzinformationen aktualisiert, wobei die CID beibehalten wird.

Dies ist vor allem in Szenarien wie dem Wechsel von WLAN zu Mobilfunk oder umgekehrt von Vorteil. Die nahtlose Migration sorgt für ein reibungsloses Surfen im Internet und verringert die Wahrscheinlichkeit, dass Verbindungen gekapert oder abgefangen werden.

Einführung von HTTP/3

Mehrere Organisationen haben die Vorteile von HTTP/3 erkannt und setzen es aktiv ein. Was die Browserunterstützung betrifft, so haben Google Chrome, Mozilla Firefox, Opera und Microsoft Edge HTTP/3 implementiert. Safari, der von Apple entwickelte Webbrowser, implementiert das Protokoll derzeit jedoch nicht.

Die Bereitschaft globaler Unternehmen und der Mehrheit der Browser, HTTP/3 zu verwenden, ist ein weiterer Beweis für die Überlegenheit von HTTP/3 gegenüber HTTP/2. In dem Maße, in dem die mit der Implementierung verbundenen Herausforderungen überwunden werden, wird die Akzeptanz von HTTP/3 weiter zunehmen und zu einer breiteren Unterstützung durch verschiedene Browser und Plattformen führen.

Herausforderungen der HTTP/3-Implementierung

Die Einführung von HTTP/3 kann bestimmte Herausforderungen mit sich bringen, die bei der Umsetzung zu bewältigen sind; einige davon werden im Folgenden beschrieben.

Kompatibilität mit bestehender Infrastruktur

Um auf HTTP/3 umzusteigen, müssen Sie Ihre bestehende Infrastruktur, einschließlich der Server und Load Balancer, ändern. Selbst nach dem Wechsel kann die Kompatibilität noch eine Herausforderung darstellen, insbesondere wenn Ihr Unternehmen groß ist und/oder über komplexe Netzwerkeinstellungen verfügt.

Firewall-Kompatibilität

Das QUIC-Transportprotokoll, das von HTTP/3 verwendet wird, verschlüsselt Datenpakete in ihrer Gesamtheit, von der Nutzlast bis zu den Metadaten. Die Verschlüsselung ist zwar vorteilhaft, erschwert aber den Zugriff auf die Datenpakete. Firewalls benötigen jedoch Zugang zu den Datenpaketen; ohne diesen Zugang sind die Kunden Cyberangriffen ausgesetzt.

Client-seitige Browser-Unterstützung und Server-Implementierung

Obwohl viele Browser HTTP/3 übernommen haben, hat Safari dies nicht getan. Die HTTP/3-Implementierung auf der Serverseite erfordert Fachwissen und möglicherweise müssen Sie sogar Ihre Serverinfrastruktur aktualisieren.

Die Kompatibilität mit bestehenden HTTP/2- oder HTTP/1.x-Implementierungen ist eine weitere Herausforderung. Die Kompatibilität ist für die nahtlose Übertragung von Anfragen über die verschiedenen Protokolle hinweg von entscheidender Bedeutung – besonders wichtig während des schrittweisen globalen Übergangs zu HTTP/3. Es ist zwar möglich, aber schwierig, die Umstellung ohne Unterbrechung der bestehenden Dienste und Verbindungen durchzuführen.

HTTP/3 für CDN

Content-Delivery-Networks (CDNs) speichern Inhalte in einem Zwischenspeicher an mehreren Serverstandorten auf der ganzen Welt. Mit der weiteren Verbreitung von HTTP/3 wird auch der tangentiale Nutzen für CDNs weiter zunehmen, was CDN-Anbieter ermutigt, das Protokoll zu implementieren und damit seine Verbreitung zu fördern. Die HTTP/3-CDN-Romantik kann folgende Vorteile bieten:

  • Native Verschlüsselung: Da HTTP/3 TLS-Verschlüsselung bietet, kann die Einbindung von HTTP/3 in CDNs die native Verschlüsselung erleichtern, statt sich auf die sofort einsatzbereite TLS-Verschlüsselung für Caches zu verlassen. Dadurch wird die Sicherheit von eigenen und externen Netzen erhöht.
  • Verkürzter Verbindungsaufbau: Durch die Verwendung von QUIC minimiert HTTP/3 die Verbindungszeit und bietet nahtloses Multiplexing und schnellere Fehlererkennung. CDNs, die HTTP/3 nutzen, werden von dieser geringeren Latenz stark profitieren und die Gesamtleistung und Zuverlässigkeit der Inhaltsbereitstellung verbessern.

Obwohl diese Vorteile verlockend sind, müssen CDN-Anbieter zunächst in die HTTP/3-Unterstützung investieren, indem sie ihre Infrastruktur aktualisieren und ihre Edge-Server neu konfigurieren, um ihren Kunden die Vorteile bieten zu können.

Fazit

Aufbauend auf den Stärken von HTTP/2 und der Beseitigung seiner Schwächen bietet HTTP/3 eine verbesserte Leistung, erhöhte Sicherheit, geringere Latenzzeiten und eine bessere Handhabung von Netzwerkbedingungen, was es zu einem vielversprechenden Protokoll für die Zukunft der Webkommunikation macht.

Bei Gcore arbeiten wir ständig daran, das Internet besser zu machen. Deshalb entwickeln und investieren wir aktiv in unser globales Edge-Netzwerk (CDN) um HTTP/3 zu unterstützen und für alle verfügbar zu machen. Sobald das System einsatzbereit ist, können Sie eine schnellere und sicherere Verbindung für Ihre Website und Anwendungen nutzen. An dieser Stelle finden Sie immer die aktuellsten Informationen!

Erfahren Sie mehr über Gcore CDN

Was ist HTTP/3 und wie unterscheidet es sich von HTTP/2?

Melden Sie sich
für unseren Newsletter an

Erhalten Sie die neuesten Branchentrends, exklusive Einblicke und Gcore-Updates
direkt in Ihren Posteingang.