HTTP/3: Die nächste Stufe des Web-Protokolls ist gezündet
Philipp Zeder
Kategorie:in
Entwicklung & Performance
Veröffentlicht am 15. Nov. 2019
Aktualisiert am 10. Sept. 2024
Vor noch nicht allzu langer Zeit hat HTTP/2 das Licht der Welt erblickt. Und jetzt steht bereits HTTP/3 auf der Matte. Wir erklären, was HTTP/3 ist, warum es noch schneller als HTTP/2 ist und wer HTTP/3 bereits nutzen kann. Spoiler-Warnung: cyon-Kundinnen und -Kunden ?
HTTP/3: Die nächste HTTP-Version steht in den Startlöchern
Bis 2015 war die Version HTTP/1.1 jahrelang das Mass aller Dinge. Dann kam HTTP/2 und brachte viele Verbesserungen. Nun steht bereits HTTP/3 in den Startlöchern. HTTP/3 ist vereinfacht gesagt die Verschmelzung der beiden Übertragungstechnologien HTTP/2 und QUIC, die bislang unabhängig voneinander auf unterschiedlichen Ebenen für schnellere Datenübertragung sorgen.
HTTP/3 erbt und vereint also die Vorteile von HTTP/2 und QUIC, die hier nochmals kurz zusammengefasst sind:
HTTP/2
- Kommunikation auf einem Kanal
Bis anhin musste der Browser für jede einzelne Datei eine eigene TCP-Verbindung öffnen. Das erzeugte unnötigen Datenverkehr und drückte auf die Geschwindigkeit. Mit HTTP/2 wird die Kommunikation zwischen Browser und Server über eine einzige Verbindung abgewickelt. - Stream Dependency
Die Kommunikation auf einem einzelnen Kanal benötigt eine gewisse Intelligenz im Hintergrund, damit sich die Datenpakete nicht in die Quere kommen. Der Browser kann dem Server signalisieren, welche Dateien für ihn wichtiger sind und diese damit vor anderen Daten priorisiert erhalten. - Kompression der Kopfzeilen
Die sogenannten HTTP-Header beinhalten die wichtigen Zusatzinformationen zu der angeforderten Datei. HTTP/1.1 erzeugt hier viele redundante Daten, was unnötigen Datenverkehr produziert. Mit HTTP/2 lassen sich diese Header drastisch in der Grösse reduzieren. Damit müssen weniger Daten ausgetauscht werden. - Server Push
Der Server kann dem Browser bereits Dateien schicken, bevor der Browser die entsprechende Dateien überhaupt angefordert hat. Das verhindert zeitintensive Roundtrips der Datenpakete zwischen dem Browser und dem Server.
QUIC
- Weniger Datenpakete, schneller verbunden
Für den Verbindungsaufbau müssen weniger Datenpakete hin und her gesendet werden. Das spart Zeit. - Konstante Verbindung
Die Verbindung zwischen den Geräten wird aufrecht erhalten, auch wenn sich das Netzwerk eines Geräts ändert (wie zum Beispiel beim Wechsel von Mobilfunk auf eine WIFI-Verbindung). Ein erneuter Verbindungsaufbau ist damit nicht nötig. - Keine Warteschlange
Die Datenpakete müssen, im Gegensatz zu TCP, nicht in einer fest definierten Reihenfolge eintreffen. Verlorene Datenpakete führen damit nicht dazu, dass die Kommunikation verlangsamt wird. - Verschlüsselung inklusive
Die Kommunikation via QUIC ist automatisch mit TLS 1.3 verschlüsselt und geniesst damit alle Vorteile von verschlüsselten Verbindungen.
Wie kann ich HTTP/3 nutzen?
HTTP/3 wird zurzeit von Arbeitsgruppen der Internet Engineering Task Force (IETF) standardisiert, befindet sich also immer noch in der Entstehungsphase. In den Entwicklungsversionen von Google Chrome, Mozilla Firefox und Microsoft Edge, den sogenannten Nightly-Builds, lässt sich HTTP/3 bereits aktivieren. Alles was es dann noch braucht, ist ein Server, der ebenfalls HTTP/3 versteht. Und der von uns verwendete Webserver LiteSpeed ist da ganz vorne mit dabei.
@litespeedtech and @facebook achieve #QUIC #HQ (or should I say #H3?) interop! Kudos to @__subodh & co!
I think we are here first! 🙂#IETF103
— Dmitri Tikhonov (@dmitri_tikhonov) November 7, 2018
So aktivieren Sie HTTP/3 in den Browsern:
-
Chrome Canary und Edge Canary: Starten Sie die den Browser via Kommandozeile und den zusätzlichen Flags
--enable-quic --quic-version=h3-23
. Der vollständige Befehl sieht auf macOS dann folgendermassen aus (Chrome Canary):/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --enable-quic --quic-version=h3-23
Wie sie Chromium-basierte Browser wie Google Chrome oder Microsoft Edge auf der Kommandozeile mit zusätzlichen Flags starten, ist auf der Chromium-Website für die verschiedenen Betriebssystem erklärt.
-
Firefox Nightly: Öffnen Sie in Firefox Nightly die URL
about:config
und suchen Sie nach dem Flagnetwork.http.http3.enabled
. Stellen Sie das Flag auftrue
und starten Sie den Browser neu.
In den Entwickler-Tools der Browser können Sie sehen, über welches Protokoll eine Datei übertragen wurde:
Mit dem HTTP/3-Check von LiteSpeed können Sie auch ohne passenden Browser testen, ob die gesuchte Website bereits HTTP/3 unterstützt.
Noch jung, aber vielversprechend
Eines zeigte sich in unseren Tests ganz klar: Man merkt, dass sich HTTP/3 noch in der Entwicklungsphase befindet. Die Tests funktionieren nicht in allen Fällen und Dokumentation zu allfälligen Bugs ist noch rar gesät. Weil aber Web-Schwergewichte wie Google, Facebook und Cloudflare an der Entwicklung beteiligt sind, ist davon auszugehen, dass HTTP/3 ein Erfolg wird. Und dank unserem LiteSpeed-Webserver sind cyon-Kundinnen und -Kunden im Technologierennen ganz vorne mit dabei.
Vielen Dank für die Info!