Zum Entstehungszeitpunkt dieses Artikels (Mai 2022), wurde die dritten Version des Hypertext Transfer Protocols (HTTP) noch nicht als offizieller Standard spezifiziert, sondern liegt noch als Entwurf der Internet Engineering Task Force (IETF) vor. Die Absegnung als RFC befindet sich allerdings in der finalen Phase und dürfte somit bald erfolgen.
Trotz dieses Umstands wird HTTP3 bereits von fast allen Web-Browsern unterstützt und eine Vielzahl an Web-Seiten wird auch heute schon über den neuen Standard ausgeliefert.
In diesem Artikel möchten wir die Vorteile und Funktionen von HTTP3 und QUIC (QUIC UDP Internet Connections) erläutern.
Was ist HTTP3 und QUIC?
HTTP3 ist die dritte Version des Hypertext Transfer Protocols (HTTP), welche die Nachfolge von HTTP2 antreten soll. HTTP3 wurde ursprünglich von Google als Ergänzung zu HTTP2 unter dem Namen „HTTP over QUIC“ entwickelt und sollte einen verschlüsselten Datentransport über UDP ermöglichen. Nachdem die IETF in 2016 mit der Formulierung von HTTP over QUIC als Internetstandard begonnen hatte, wurde das Projekt in das Transport Protokoll (QUIC) und das Anwendungs Protokoll (HTTP3) geteilt.
Was macht HTTP3 besser als sein Vorgänger?
Während HTTP1.1 und HTTP2 über TCP laufen, wird die Verbindung zwischen Klient und Server bei HTTP3 über QUIC realisiert. Der Vorteil besteht darin, dass damit das Head-of-Line-Blocking auf der Transportschicht eliminiert werden kann.
Eliminierung des Head-of-Line-Blocking
Bei den Versionen HTTP/1.0 und 1.1 musste noch für jedes HTTP-Request/Response eine eigene TCP-Verbindung geöffnet werden. Da auf diese Weise bei modernen Web-Anwendungen teilweise hunderte TCP-Verbindungen erforderlich sind und üblicherweise maximal sechs parallele Verbindungen geöffnet werden, kann es dadurch zu Verzögerungen der Ladegeschwindigkeit kommen.
Mit HTTP2 wurde das Multiplexing unbegrenzt vieler HTTP-Requests über eine einzelne TCP-Verbindung eingeführt. Das Problem dabei ist jedoch, dass bereits ein verlorenes Paket dazu führt, dass die gesamte Verbindung und nicht nur der Transfer einer bestimmten Ressource blockiert wird. An dieser Stelle setzt HTTP3 bzw. QUIC an.
Mit HTTP3 erfolgt die Verbindung nicht mehr über TCP sondern über QUIC. Dadurch können Datenstreams unterschiedlich behandelt werden und der Verlust eines Pakets führt nicht mehr dazu, dass die gesamte Verbindung blockiert wird, sondern nur noch der betreffende Stream. Das kann die Ladegeschwindigkeit insbesondere bei schlechter oder instabiler Internetverbindung (z.B mobile Netzwerke) deutlich erhöhen. Der Nachteil liegt darin, dass HTTP3 eine höhere CPU-Last am Server erzeugen kann.
Effizientere Verschlüsselung und 0-RTT
Ein weiterer Vorteil von QUIC ist die standardmäßige Verschlüsselung der Datenübertragung auf der Transportschicht. Während bei TCP verschlüsselte und unverschlüsselte Datenpakete übertragen werden können, ist die Verbindung bei QUIC immer verschlüsselt, sodass Daten auf dem Weg zwischen Sender und Empfänger nicht durch einen unautorisierten Dritten ausgelesen werden können. Dadurch dass bei QUIC der Transport- und Verschlüsselungshandshake in eine Aktion zusammengefasst werden konnte, wird die Latenz reduziert, was sich auf eine bessere Web-Seiten Geschwindigkeit auswirken kann.
Zusätzlich kann die Zeit verkürzt werden, die für den Aufbau einer neuen Verbindung benötigt wird, wenn ein Klient bereits früher eine Verbindung zu einem Server aufgebaut hatte. Dazu werden bestimmte Parameter dieser Verbindung zwischenspeichern und anschließend eine 0-RTT-Verbindung mit dem Server aufgebaut. Auf diese Weise kann der Klient sofort Daten senden, ohne auf den Abschluss der Handshakes warten zu müssen.
Welche Browser unterstützen HTTP3 heute bereits?
Zum Veröffentlichungszeitpunkt dieses Artikels (Mai 2022), wird HTTP3 von fast allen gängigen Web-Browsern unterstützt. Einzig bei Safari ist HTTP3 noch nicht standardmäßig aktiv, sondern muss in den Entwicklereinstellungen eingeschaltet werden.
Wie kann ich prüfen, ob eine Web-Seite per HTTP3 ausgeliefert wird?
Ob eine Web-Seite per HTTP3 ausgeliefert wird, können Sie in den Entwicklertools Ihres Web-Browsers prüfen. In Google Chrome können Sie dafür die Entwicklerkonsole öffnen und im Tab „Netzwerk“ die Spalte „Protokoll“ prüfen. Hier steht „h3“ für eine Auslieferung per HTTP3. Dagegen steht „h2“ für eine Auslieferung per HTTP2.
Fazit
Während sich HTTP3 noch in der Entwicklung befindet, können Web-Seiten Betreiber schon jetzt die Vorteile nutzen, indem sie einen Web-Hosting Provider wählen, der auf moderne Web-Server Technologien mit HTTP3-Unterstützung setzt. Potenzielle Hindernisse für die breite Etablierung des neuen Standards wie beispielsweise die erhöhte CPU-Rechenleistung für Server und Klienten, wird in kommenden Weiterentwicklungen sicher noch weiter reduziert.