Http/3 – Good Bye Tcp, Hallo Quic – Ein Ausblick

http/3 major release mit quic statt tcp
1. Dezember 2020

HTTP/3 – das nächste HTTP Major Release

Das Hypertext Transfer Protocol (HTTP) ist eine der Säulen des Internets. Per HTTP werden Webseiten zwischen einem Server und dem Browser des Webseitenbesuchers übertragen. Mit HTTP/2, eine Weiterentwicklung von HTTP/1, existiert bereits eine überarbeitete und verbesserte Version des häufig eingesetzten Protokolls.


Mit HTTP/3 steht nun das nächste Major Release ins Haus. Es unterscheidet sich deutlich von seinen Vorgängerversionen. HTTP/3 setzt auf QUIC (Quick UDP Internet Connections) und verspricht für die Kommunikation zwischen Webserver und Webbrowser einen deutlichen Geschwindigkeits- und Leistungsschub. Auch wenn der Standard noch nicht endgültig fertig ist, schon heute unterstützen gängige Browser, zahlreiche Webserver und einige Internet-Services bestimmte Funktionen von HTTP/3.


Im folgenden Beitrag erklären wir dir, was HTTP/3 ist, wie und warum es entstanden ist und natürlich auch, welche Verbesserungen das neue Major Release mitbringt. Außerdem klären wir, welche Voraussetzungen erfüllt sein müssen, um HTTP/3 einzusetzen.


Inhaltsverzeichnis

  1. Grundsätzliches zu HTTP
  2. Die Evolution HTTP/3 und QUIC
  3. Wie unterscheidet sich HTTP/3 vom derzeit verwendeten HTTP?
  4. Was sind die wichtigsten Vorteile von HTTP/3?
  5. Wann kommt HTTP/3?

1. Grundsätzliches zu HTTP

Bevor wir uns im Detail um die Funktionsweise und Vorteile von HTTP/3 kümmern, zunächst für ein besseres Verständnis einige grundlegende Informationen zum Hypertext Transfer Protocol:


Das Hypertext Transfer Protocol, abgekürzt HTTP, ist ein zustandsloses Protokoll zur Übertragung von Daten in einem IP-basierten Netzwerk wie dem Internet. Es lässt sich für verschiedene Zwecke einsetzen. Wichtigste Anwendung ist die Übertragung von Internetseiten zwischen Webserver und Webbrowser.


HTTP wird aber auch für andere Zwecke verwendet. Beispielsweise basieren Anwendungen wie WebDAV, ein Dienst zur Übertragung von Dateiverzeichnisdaten, und REST-Webservices auf HTTP. Spezifiziert ist HTTP im RFC 1945 aus dem Jahr 1996. In weiteren RFCs wie RFC 2616 aus dem Jahr 1999 und RFC 7540 (HTTP/2) aus dem Jahr 2015 wurde das Protokoll kontinuierlich erweitert und optimiert.


Während von HTTP Daten unverschlüsselt überträgt, lässt sich mit HTTPS (Hypertext Transfer Protocol Secure) eine kontinuierliche Verschlüsselung der übertragenen Daten realisieren. Es sorgt heute im Internet für die sichere und verschlüsselte Kommunikation zwischen Internetnutzern und Webservern.


2. HTTP/3 und QUIC – zu Evolution und Entwicklung

HTTP/3 ist das dritte Major Release von HTTP. Es ist der Nachfolger von HTTP/2 und aus einer Initiative und Eigenentwicklung von Google entstanden. Wichtigstes Ziel von HTTP/3 ist es, die Geschwindigkeitseinschränkungen älterer HTTP-Versionen aufzuheben und das Web zu beschleunigen.


Bereits im Jahr 2012 entwickelte Google mit dem sogenannten QUIC (Quick UDP Internet Connections) eine eigene Version von HTTP. Unter der Bezeichnung HTTP-over-QUIC implementierte der Suchmaschinenriese das Protokoll in zahlreiche seiner Services und Produkte wie den Google-Browser Chrome. Auch Facebook verwendete schnell HTTP-over-QUIC.


Inspiriert von dieser Entwicklung verabschiedete die Internet Engineering Task Force (IETF) im Jahr 2018 einen neuen Entwurf des HTTP-Protokolls, das QUIC beinhaltete. Die Entwicklung erfolgte unter der Bezeichnung HTTP/3. Mit HTTP/3 sollen offiziell die Vorteile von HTTP/2 und HTTP-over-QUIC in einem gemeinsamen Standard vereint werden.


3. Wie unterscheidet sich HTTP/3 von HTTP/2 (und HTTP/1) ?

Die bisherigen HTTP-Versionen HTTP/1 und HTTP/2 setzen alle auf dem verbindungsorientierten Transportprotokoll TCP (Transmission Control Protocol) der Internetprotokollfamilie auf. Der Datenaustausch per HTTP basiert auf zuvor zwischen Client und Server aufgebauten TCP-Verbindungen. Die Verbindungen kommen in einem mehrstufigen Handshake-Verfahren zustande und sorgen für eine chronologische, gegenseitig quittierte Übertragung der einzelnen Datenpakete.


Das macht den Datenaustausch zwar sehr zuverlässig und sicher, doch bremsen die Quittierungsmechanismen und der Verbindungsaufbau die Datenübertragung aus. Dadurch kann es zu langen Ladezeiten oder auch Stausituationen aufgrund nicht quittierter oder verlorener Pakete kommen. Mit TCP hat die Geschwindigkeit des Datenaustauschs zwischen Server und Client in vielen Internetanwendungen daher seine Grenzen erreicht.


HTTP/3 löst die Nutzung von TCP nun durch QUIC ab und setzt auf dem verbindungslosen, Datagram-basierten Transportprotokoll UDP (User Datagram Protocol) auf. UDP verzichtet auf der Transportebene auf den Aufbau expliziter Verbindungen zwischen den kommunizierenden Endpunkten und benötigt keine Sender- oder Empfängerquittierungen.


Eventuelle Fehlerkorrekturen erfolgen auf QUIC-Ebene. Das reduziert die Paketzahl zwischen Sender und Empfänger und sorgt für eine deutliche Beschleunigung der Kommunikation. Gleichzeitig integriert HTTP/3 die TLS-Verschlüsselung und macht zusätzliche Handshakes auf der TCP-Ebene überflüssig.


Im Folgenden kurz zusammengefasst die wichtigsten Unterscheidungsmerkmale zwischen vorherigen Versionen von HTTP und HTTP/3:


  • HTTP/3 setzt auf dem verbindungslosen Transportprotokoll UDP und nicht auf dem verbindungsorientierten TCP auf
  • HTTP/3 integriert die Verschlüsselung auf QUIC-Ebene
  • HTTP/3 arbeitet dadurch grundsätzlich mit verschlüsselten Verbindungen

4. Was sind die wichtigsten Vorteile von HTTP/3?

Dank des Wechsels des Transportprotokolls von TCP auf UDP und der Integration verschiedener Funktionen wie der Verschlüsselung auf der QUIC-Ebene bietet HTTP/3 zahlreiche Vorteile und erlaubt in Gesamtheit betrachtet eine komfortablere Nutzung des Internets.


Die Datenübertragungsgeschwindigkeit steigt und Internetseiten lassen sich in kürzerer Zeit laden. Schwachstellen älterer HTTP-Versionen wie das Head-of-line-Blocking, das die Datenübertragung aller Verbindungen verlangsamt, wenn es auf einer Verbindung zu Engpässen kommt, werden beseitigt.


Darüber hinaus ermöglichen die in HTTP/3 verwendeten Verbindungs-IDs konstante, unterbrechungsfreie Datenübertragungen, selbst wenn sich IP-Adressen aufgrund eines Netzwechsels während der Kommunikation ändern. Verbindungen werden insgesamt stabiler und die Nutzungsmodelle mobiler drahtloser Netze flexibler.


Die Vorteile von HTTP/3 nochmals kurz aufgelistet:


  • höhere Datenübertragungsgeschwindigkeiten
  • kürzere Ladezeiten von Internetseiten
  • schnellerer Aufbau einer verschlüsselten Kommunikation
  • alle Verbindungen sind grundsätzlich verschlüsselt
  • Reduzierung der Datenpakete
  • Reduzierung störender Effekte wie Head-of-line-Blocking
  • konstante, unterbrechungsfreie Datenübertragung selbst beim Netzwechsel
  • flexiblere Nutzbarkeit mobiler, drahtloser Netzwerke
  • Vermeidung von Warteschlangen und Stausituationen

5. Wann kommt HTTP/3? Was sind die Voraussetzungen für den Einsatz von HTTP/3 im Web?

Zwar ist der HTTP/3-Standard noch nicht ganz fertig, doch der zentrale Bestandteil QUIC ist dank Google (2015) und Facebook (2017) längst im Web aktiv. Nach statistischen Erhebungen von W3Techs wird HTTP/3 bereits von circa acht Prozent der Top-10-Millionen Websites unterstützt (Quelle: Wikipedia HTTP/3). Um von den Vorteilen von HTTP/3 in seiner Gesamtheit zu profitieren, muss der Standard natürlich final verabschiedet werden und wann das genau geschieht, ist noch unklar. Generell gilt wieder: Ruhe bewahren, denn QUIC baut auf dem bereits weit verbreiteten UDP auf und soll durch Fallbacklösung auf TCP schließlich abwärtskompatibel sein, wenn es von einer Partei bei der Datenübertragung nicht unterstützt wird.


Prinzipielle Voraussetzungen sind die Implementierung von HTTP/3 auf Client- und Serverseite. Die gängigen Browser wie Chrome, Firefox oder Safari haben HTTP/3 bereits implementiert, teilweise aber noch nicht als Default-Protokoll aktiviert. Auch für Server sind inzwischen einige Software-Versionen mit teils noch experimenteller Unterstützung von HTTP/3 verfügbar. Beispielsweise ist der LiteSpeed Webserver nativ mit HTTP/3 kompatibel.


Auch für nginx existieren erste Releases mit HTTP/3-Support als technologischer Preview. Für den Caddy Webserver gibt es experimentellen Support für HTTP/3. Darüber hinaus finden sich im Web auf dem Software-Repository GitHub zahlreiche Open-Source-basierte Libraries, die die Implementierung der HTTP/3-Unterstützung in beliebige Client-Server-Architekturen ermöglichen. Darunter Libraries für Programmiersprachen wie Rust, C, C++, Java, Python, Go oder Haskell.


Eine flächendeckende Einführung des neuen Standards ist nur schrittweise zu erwarten und HTTP/2 wird wohl erst über die Jahre abgelöst werden.


Ein weiterer Schritt in die digitale Zukunft – Optimierung von Verbindungen und Datenübertragung – Einmal mehr angestoßen durch Google.


Wir freuen uns über Fragen und Anmerkungen in den Kommentaren!

Johannes
2 Responses
Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert