Webhosting

HTTP/2 und HTTP/3

Definition

HTTP/2 und HTTP/3 sind die neueren Versionen des Web-Protokolls. HTTP/2 überträgt viele Anfragen parallel über eine einzige TCP-Verbindung, als binäre Frames mit komprimierten Headern; HTTP/3 behält dieses Prinzip bei, setzt aber auf QUIC über UDP, damit ein verlorenes Paket nur noch seinen eigenen Stream verzögert.

HTTP/2 und HTTP/3, Webhosting

Eine WordPress-Seite besteht selten aus nur einer Datei: Zum HTML kommen Dutzende Stylesheets, Skripte, Bilder und Schriften. Mit HTTP/1.1 bearbeitet jede Verbindung nur eine Anfrage zur selben Zeit, also muss der Browser mehrere Verbindungen öffnen und sich in die Warteschlange stellen. HTTP/2 und danach HTTP/3 wurden entwickelt, um diese vielen kleinen Austausche effizienter zu transportieren, ohne an der Bedeutung der Anfragen etwas zu ändern: Methoden, Statuscodes und Header bleiben dieselben.

HTTP/2: Multiplexing

HTTP/2, heute in RFC 9113 beschrieben (sie ersetzt RFC 7540), zerlegt Nachrichten in binäre Frames. Jeder Austausch wird zu einem Stream, und viele Streams laufen gleichzeitig über eine einzige Verbindung: Ein langsamer Stream hält die anderen nicht mehr auf. Die Header, die sich von Anfrage zu Anfrage stark wiederholen, werden mit HPACK komprimiert.

Die RFC räumt eine Grenze ein: Das Head-of-Line-Blocking von TCP ist nicht gelöst. Geht ein Paket verloren, hält TCP alles Nachfolgende bis zur erneuten Übertragung zurück, und alle Streams warten. Für HTTP/2 über TLS schreibt der Standard TLS 1.2 oder neuer vor, und die Apache-Dokumentation erinnert daran, dass die meisten Browser HTTP/2 nur mit https-Adressen sprechen.

Vergleich in drei Spalten. HTTP/1.1: Text, eine Anfrage pro Verbindung gleichzeitig, der Browser öffnet mehrere TCP-Verbindungen, Header werden im Klartext wiederholt. HTTP/2: binäre Frames, viele gemultiplexte Streams auf einer einzigen TCP-Verbindung, mit HPACK komprimierte Header, aber ein verlorenes TCP-Paket blockiert alle Streams. HTTP/3: gleiches Multiplexing über QUIC auf Basis von UDP, integrierte TLS-1.3-Verschlüsselung, QPACK-Komprimierung, ein verlorenes Paket verzögert nur seinen eigenen Stream, angekündigt über den Header Alt-Svc.
HTTP/2 bündelt die Anfragen auf einer Verbindung; HTTP/3 wechselt das Transportprotokoll, um die Blockade durch TCP zu beseitigen.

HTTP/3: ein anderes Transportprotokoll

HTTP/3 (RFC 9114) übernimmt dasselbe Modell, setzt aber auf QUIC (RFC 9000), ein sicheres Transportprotokoll, das in UDP-Datagrammen unterwegs ist. QUIC verwaltet die Streams selbst: Sie sind voneinander unabhängig, und ein Verlust verzögert nur den betroffenen Stream. Die TLS-1.3-Verschlüsselung ist Teil des Handshakes, was die Zahl der Roundtrips bis zum ersten Byte senkt, und eine Verbindung kann einen Netzwechsel überstehen, etwa vom WLAN ins Mobilfunknetz. Die Header-Komprimierung heißt nun QPACK.

Der Browser erfährt von HTTP/3 über den Header Alt-Svc, der bei einer ersten Verbindung per HTTP/2 oder HTTP/1.1 mitgeschickt wird: Er teilt mit, dass dieselbe Website auch per h3 auf einem UDP-Port antwortet. Blockiert eine Firewall UDP, bleibt der Browser einfach bei HTTP/2.

Video: „Was ist HTTP/3? // deutsch“ (the native web GmbH)

Für WordPress

  • Prüfe die verwendete Version im Tab „Netzwerk“ der Entwicklertools deines Browsers (Spalte „Protokoll“: h2 oder h3).
  • Am einfachsten ist oft ein CDN, das unabhängig von deinem Server HTTP/3 mit den Besuchern spricht. LiteSpeed bietet es ebenfalls an; für Nginx gibt es das HTTP/3-Modul seit Version 1.25.0, laut Dokumentation weiterhin als experimentell eingestuft.
  • Unter Apache läuft HTTP/2 über mod_http2 und die Direktive Protocols h2 http/1.1; die Dokumentation empfiehlt das MPM event, denn mit prefork bearbeitet eine Verbindung nur eine Anfrage zur selben Zeit.
  • Öffne UDP 443 in der Firewall des Servers, wenn du HTTP/3 selbst aktivierst.

Wie stark sich das auf die Performance auswirkt, hängt von der Website, dem Netz und der Zahl der Dateien ab; die von Google berücksichtigten Performance-Signale behandeln wir in unserem Beitrag über HTTPS, HSTS und Sicherheits-Header.

Weiterlesen

  • Artikel HTTPS, HSTS und Sicherheits-Header: was Google wirklich berücksichtigt

Quellen

  1. RFC 9113: HTTP/2 (externer Link, öffnet in neuem Tab)
  2. RFC 9114: HTTP/3 (externer Link, öffnet in neuem Tab)
  3. RFC 9000: QUIC, A UDP-Based Multiplexed and Secure Transport (externer Link, öffnet in neuem Tab)
  4. Apache HTTP Server: HTTP/2 guide (externer Link, öffnet in neuem Tab)

Alle Definitionen

WordPress-Sicherheit ohne Lärm

Eine E-Mail, wenn es wichtig ist: neu beobachtete Angriffe, Updates des Plugins und praktische Anleitungen. Kein Spam, Abmeldung mit einem Klick.

Starte kostenlos und wechsle zu Pro, wenn du so weit bist

Die kostenlose Version versteckt WordPress bereits und verschiebt die Anmeldeseite. Pro ergänzt Aliasse, Zwei-Faktor-Authentifizierung und Überwachung.