HTTP/3 und QUIC

Veröffentlicht am:

Die wichtigsten Befehle zum Merken

  • curl --version — HTTP/3-Unterstützung dieser Installation prüfen.
  • curl --http3-only — HTTP/3 ohne Rückfall auf ältere Versionen versuchen.

Befehle und Optionen

Option oder Syntax Bedeutung
--http3-only HTTP/3 verlangen, statt über HTTP/2 oder HTTP/1.1 erfolgreich zurückzufallen.
-sS -o /dev/null Fehler behalten, Fortschritt ausblenden und Body verwerfen.
-w 'HTTP %{http_version}\n' Tatsächliche Version und Zeilenumbruch ausgeben.
--max-time 10 Den Transfer auf zehn Sekunden begrenzen.

Die zitierte Vorlage gehört curl. Aktuelle Endpunktunterstützung und Netzwerkpfad werden geprüft, nicht vorausgesetzt.

Die entscheidenden Konzepte

1. HTTP/3 verwendet QUIC statt TCP

HTTP/3 bildet HTTP-Anfragen und Antworten auf QUIC ab, einen Transport über UDP. Methoden, Statuscodes und Ressourcen behalten HTTP-Semantik; Transport und Framing ändern sich.

UDP darunter macht HTTP/3 nicht unzuverlässig. QUIC implementiert Zuverlässigkeit, Reihenfolge innerhalb von Streams sowie Fluss- und Überlastkontrolle. Eine Firewall kann TCP-HTTPS erlauben und den entsprechenden UDP-Pfad trotzdem blockieren.

2. Unabhängige Streams reduzieren Transportkopplung

QUIC liefert innerhalb jedes Streams geordnet. Fehlende Daten eines Streams müssen nicht die Zustellung aller anderen blockieren. Das adressiert die verbindungsweite TCP-Reihenfolgekopplung von HTTP/2.

Gemeinsame Überlastung, Bandbreitengrenzen und Anwendungsabhängigkeiten verschwinden nicht. Die HTTP/3-Headerkompression QPACK besitzt ebenfalls zu koordinierende Abhängigkeiten. Ein Stream kann langsam bleiben, während andere fortschreiten.

3. TLS gehört zum Transport-Handshake

QUIC verwendet TLS 1.3 für Authentifizierung und Schlüsselaufbau. Zertifikatsidentität und Vertrauen bleiben wichtig; HTTP/3 beseitigt keine Hostnamenprüfung.

Manche wiederaufgenommenen Verbindungen können früh Daten senden und Startlatenz reduzieren. Frühe Daten haben Replay-Risiken und passen nicht zu jeder Operation. Schnellerer Aufbau ist eine bedingte Fähigkeit, kein Versprechen kürzerer Laufzeit jeder Anfrage.

4. Verbindungsidentität kann Adresswechsel überleben

QUIC-Verbindungskennungen identifizieren eine etablierte Verbindung unabhängig von einem festen IP-/Portpaar. Das ermöglicht unter passenden Bedingungen kontrollierte Migration, etwa beim Netzwerkwechsel eines Clients.

Pfadvalidierung und Peerrichtlinien gelten weiterhin. Eine Kennung garantiert keine nahtlose Migration durch jede Firewall oder jeden Load Balancer. Auch Betriebswerkzeuge müssen UDP-Flow und QUIC-Verbindung unterscheiden.

Ein kleines Beispiel

Optional: Verwende dein installiertes curl. Die zweite Zeile sendet eine öffentliche HTTPS-Anfrage ohne Rückfall auf ältere Versionen.

curl --version
curl --http3-only -sS -o /dev/null -w 'HTTP %{http_version}\n' --max-time 10 https://curl.se/

Suche HTTP3 in der Feature-Liste. Eine nicht unterstützte Option ist eine lokale Build-Grenze und unterscheidet sich von einer QUIC-Ablehnung durch Endpunkt oder Netzwerk.

Version 3 nach erfolgreichem Transfer bestätigt HTTP/3. Timeout oder Aushandlungsfehler unterscheiden fehlende Serverunterstützung, UDP-Filter und andere Pfadprobleme nicht allein. Das Versionsfeld eines fehlgeschlagenen Transfers ist kein Erfolgsnachweis.

Der Body wird verworfen, Zertifikatsprüfung bleibt aktiv. Dieser einzelne Transfer demonstriert weder Migration noch parallele Streams. Aufräumen ist nicht erforderlich.

Merke dir: HTTP/3 erhält HTTP-Semantik. QUIC liefert sichere, zuverlässige Streams über UDP. Prüfe den tatsächlich ausgehandelten Transport.