HTTP/3: Die nächste Version des Hypertext Transfer Protocols

Mit HTTP/3 steht die nächste Evolutionsstufe des Hypertext Transport Protocols ins Haus. Welche Vorteile bringt der neue Standard mit sich.

Das Hypertext Transfer Protocol (HTTP) nutzen wir alle täglich. Das Protokoll dient der Dateiübertragung und wird vor allem dafür eingesetzt, Websites an unsere Browser zu schicken. Eingeführt wurde HTTP bereits 1991. Standardisiert aber erst fünf Jahre später. 2015 kam dann das große Update auf HTTP/2, mit dem einige Probleme des Protokolls behoben werden sollten. Die wichtigste Neuerung von HTTP/2 war das Multiplexing. Dadurch konnten erstmals mehrere Datenströme über die gleiche physische Verbindung übertragen werden. Dementsprechend müssen weniger Verbindungen aufgebaut werden. Das führt unter anderem zu einer besseren Ausnutzung der verfügbaren Bandbreite. Ganz perfekt ist das Ganze aber trotzdem noch nicht.

Die größten Unterschiede zwischen HTTP/2 und HTTP/3

HTTP/2 setzt wie das Vorgängerprotokoll auf das Transmission Control Protocol (TCP). Vereinfacht ausgedrückt sorgt das Protokoll dafür, dass die in einer bestimmten Reihenfolge gesendeten Daten auch genauso beim Empfangsgerät ankommen. Geht allerdings ein Paket aus dieser Reihe verloren, wird die gesamte TCP-Verbindung so lange unterbrochen, bis das fehlende Glied eintrudelt. Steigt die Verlustrate aufgrund einer schlechten Verbindung, dann kann das dazu führen, dass HTTP/1 am Ende sogar schneller wäre als dessen Nachfolger – weil HTTP/1 eben bis zu sechs TCP-Verbindungen aufbaut, auf die sich dann auch die verlorenen Pakete verteilen würden. Die einzelnen Verbindungen sind dann weniger stark betroffen als die eine TCP-Verbindung bei HTTP/2, über die mehrere Datenströme übertragen werden.

Google arbeitet daher schon seit 2012 an einer Alternative unter dem Namen QUIC. Die Technik wurde ein Jahr später offiziell vorgestellt und zunächst für die interne Kommunikation zwischen Google-Servern genutzt und später auch von Facebook eingesetzt. QUIC setzt nicht mehr auf das verbindungsorientierte TCP, sondern auf das verbindungslose User Datagram Protocol (UDP). UDP verzichtet beim Datentransport auf den Aufbau explizierter Verbindungen und benötigt keine Quittierung des Dateneingangs. Eventuell benötigte Fehlerkorrekturen geschehen auf QUIC-Ebene und am Ende wird dadurch die Paketzahl reduziert, was zu einer deutlichen Beschleunigung führt. Die für die Standardisierung von Internet-Übertragungsprotokollen zuständige Internet Engineering Taskforce (IETF) einigte sich später darauf, QUIC als Grundlage für HTTP/3 zu nutzen.

Die Vorteile von HTTP/3

Einzelne Datenströme werden bei HTTP/3 getrennt behandelt. Geht ein Paket unterwegs verloren, betrifft das daher nicht mehr alle Datenströme, wie es bei einer TCP-Übertragung der Fall war. Stattdessen muss bei HTTP/3 nur noch der eigentlich betroffene Strom warten, bis das fehlende Paket nachgeliefert wird. Mit HTTP/3 verringert sich darüber hinaus auch die Paketumlaufzeit. Darunter versteht man die Zeit, die ein Datenpaket benötigt, um beim Ziel anzukommen zusätzlich zu der Zeit, die eine Bestätigung des Dateneingangs benötigen würde.

Eine HTTP/3-Verbindung wird zu einem UDP-Port und einer IP-Adresse hergestellt. Sobald die Verbindung besteht, wird eine Verbindungskennung vergeben. Diese Verbindungskennung ist unabhängig von eurer IP-Adresse. Daraus ergibt sich ein weiterer Vorteil von HTTP/3: Wenn ihr beispielsweise von eurem WLAN zu einer mobilen Datenverbindung wechselt, muss ein etwaig laufender Download nicht unterbrochen werden.

HTTP/3 ist immer verschlüsselt

Im Gegensatz zum Vorgängerstandard sind HTTP/3-Verbindungen immer verschlüsselt. Dafür setzt das Protokoll auf den Verschlüsselungsstandard TLS 1.3. Das erhöht zum einen die Sicherheit, weil unverschlüsselte Verbindungen schlicht nicht mehr vorkommen. Allerdings dient die Verschlüsselung auch einem weiteren Zweck: Mit ihr soll die sogenannte Protokoll-Ossifikation verhindert werden. Unter dem Begriff versteht man eine zunehmende Inflexibilität von Netzwerkprotokollen, die beispielsweise durch Firewalls oder NATs verursacht werden. Die prüfen, ob es sich bei durchgehendem Traffic möglicherweise um schadhaften Datenverkehr handelt und blockieren daher häufig etwaige Abweichungen von der Norm.

Da diese Systeme häufig nie oder nur sehr spät mit Updates versorgt werden, lassen sich Internetprotokolle nur schwer ändern, weil dann immer die Gefahr besteht, dass entsprechender Traffic viele Stellen des Netzes nicht mehr passieren kann. Dank der Verschlüsselung des gesamten HTTP/3-Traffics können die dafür verantwortlichen Systeme die Protokolländerung jedoch nicht erkennen und sollten den Traffic dementsprechend unverändert durchlassen. Ironischerweise war Protokoll-Ossifikation ursprünglich der Grund dafür, dass das in HTTP/3 dauerhaft aktivierte TLS 1.3 nicht flächendeckend eingesetzt werden konnte. Das Verschlüsselungsprotokoll musste daher so angepasst werden, dass es bei der Verbindungsaufnahme dessen Vorgängerversion glich.

Wann kommt HTTP/3?

Noch ist HTTP/3 nicht offiziell verabschiedet. Auf Client-Seite wird das Protokoll aber bereits von allen großen Browsern unterstützt. Allerdings ist HTTP/3 noch nicht in allen Browsern auch standardmäßig aktiv. Serverseitig unterstützt heute bereits der Litespeed Web Server den neuen Standard und andere Server-Projekt wie Nginx arbeiten an der Unterstützung. Außerdem gibt es bereits eine ganze Reihe von Bibliotheken, die HTTP/3 unterstützen oder bald unterstützen werden. Selbst nach der Verabschiedung des Standards dürften aber noch Jahre vergehen, bis HTTP/3 wirklich flächendeckend im Web zum Einsatz kommt.

Quelle: t3n