LW IT Solutions logo LW IT Solutions logo LW IT Solutions
« Blog-Übersicht /Web Entwicklung/Tutorials / HTTP/3 beim ersten Besuch: Wie ein Client...
Diesen Artikel in anderen Sprachen lesen:

HTTP/3 beim ersten Besuch: Wie ein Client das Protokoll entdeckt und was zwanzig Seiten geantwortet haben

HTTP/3 beim ersten Besuch: Wie ein Client das Protokoll entdeckt und was zwanzig Seiten geantwortet haben
Inhalt
  1. Was HTTP/3 anders macht
  2. Wie ein Programm erfährt, dass es HTTP/3 gibt
  3. Was zwanzig Seiten geantwortet haben
  4. Der zweite Abruf sieht anders aus
  5. Angekündigt und unerreichbar, und umgekehrt
  6. Was daraus folgt
  7. Fragen und Antworten
  8. Quellen

Eine Protokollfassung lässt sich nicht einfach verlangen. HTTP/1.1 und HTTP/2 werden während des verschlüsselten Verbindungsaufbaus ausgehandelt, in einem Schritt, in dem beide Seiten auflisten, was sie sprechen. HTTP/3 kann an diesem Schritt nicht teilnehmen, weil es gar nicht dieselbe Art Verbindung benutzt.

Zwanzig große Seiten wurden je einmal geöffnet. Sechs davon sprechen HTTP/3. Keine einzige der zwanzig Verbindungen hat es benutzt.

Erster Abruf über HTTP/2 neben zweitem Abruf über HTTP/3, die gemessenen Protokollzahlen für zwanzig Seiten und drei Seiten, die aus dem Muster fallen
Am Server hat sich zwischen den beiden Anfragen nichts geändert – nur dass das Programm einmal da war.

Was HTTP/3 anders macht

HTTP/1.1 und HTTP/2 laufen beide über TCP. HTTP/3 läuft über QUIC, und das sitzt stattdessen auf UDP.

Der praktische Gewinn liegt im Umgang mit Verlusten. Unter HTTP/2 teilen sich mehrere Anfragen eine TCP-Verbindung, und ein einziges verlorenes Paket bremst sie alle aus, bis es erneut geschickt wurde: Jeder Strom wartet auf einen. QUIC hält die Ströme unabhängig, ein verlorenes Paket verzögert also nur das, wozu es gehörte.

Der Preis dafür ist ein völlig anderer Transportweg. Wer HTTP/3 will, muss eine UDP-Verbindung zu einem Port aufbauen, an dem vielleicht jemand lauscht und vielleicht nicht – und das lässt sich nicht während eines TCP-Aufbaus herausfinden, weil es keinen TCP-Aufbau gibt.

Wie ein Programm erfährt, dass es HTTP/3 gibt

Es gibt zwei Wege, und beide müssen vor der Verbindung liegen, die ihn nutzen würde.

Der erste ist ein Header. Ein Server, der über HTTP/2 antwortet, kann Alt-Svc: h3=":443" mitschicken. Das heißt: Denselben Inhalt gibt es auch über HTTP/3 auf diesem Port, und das Angebot gilt so und so viele Sekunden. Das Programm merkt sich das und nutzt es beim nächsten Mal.

Der zweite ist das DNS. Ein HTTPS-Eintrag kann das Protokoll benennen, bevor überhaupt eine Verbindung besteht, und das ist der einzige Weg, der bei einem wirklich ersten Besuch trägt.

Beides sind Ankündigungen, keines ist eine Anfrage. Einfach HTTP/3 zu versuchen und zurückzufallen geht nicht, denn ein misslungener UDP-Versuch kostet eine Wartezeit, und die ist schlimmer als der Verzicht.

Was zwanzig Seiten geantwortet haben

Am 2. September 2026 öffnete ein Programm, das HTTP/3 beherrscht, jede Seite einmal und folgte dabei den Weiterleitungen. Alle zwanzig Seiten antworteten mit Status 200.

Achtzehn Verbindungen kamen über HTTP/2 zustande. Zwei über HTTP/1.1: nginx.org und www.gnu.org, beides alteingesessene Projektseiten.

Keine einzige über HTTP/3 – auch nicht bei den sechs Seiten, deren Antwort es ankündigte. Denn die Ankündigung steckt in der Antwort, und zu diesem Zeitpunkt ist die Verbindung längst zustande gekommen.

Zwei parallele Rohre: das obere am vorderen Ende offen, das untere verschlossen, weiter hinten durch ein kurzes Zwischenstück verbunden

Der zweite Abruf sieht anders aus

Drei der Seiten wurden danach zweimal hintereinander gefragt, wobei das Programm behielt, was ihm beim ersten Mal gesagt worden war.

Bei cloudflare.com, bbc.com und w3.org lief der erste Abruf über HTTP/2 und der zweite über HTTP/3, jedes Mal. Am Server hat sich dazwischen nichts geändert. Der einzige Unterschied war, dass das Programm einmal da gewesen war.

So sieht die Verbreitung von HTTP/3 in der Praxis aus: Die erste Seite eines Besuchs wird nie darüber ausgeliefert, alles danach vielleicht. Ob das ins Gewicht fällt, hängt davon ab, welchen Anteil eines Besuchs die erste Anfrage ausmacht – bei einer einzelnen gelesenen und wieder verlassenen Seite einen ziemlich großen.

Angekündigt und unerreichbar, und umgekehrt

Zwei Seiten fielen in entgegengesetzte Richtungen aus dem Muster.

python.org baute jede erzwungene HTTP/3-Verbindung auf, schickte aber keinen Alt-Svc-Header und führte auch keinen DNS-Eintrag. Das Protokoll wird gesprochen und nirgends angekündigt, ein Browser hat also keine Möglichkeit, davon zu erfahren.

spiegel.de kündigte HTTP/3 in der Antwort an, doch fünf erzwungene Versuche aus diesem Netz kamen nie zustande. Das ist eine Aussage über diese Messung und nicht über die Seite: Eine UDP-Verbindung kann unterwegs an Dingen scheitern, die mit dem Server nichts zu tun haben.

Der DNS-Weg erwies sich ebenfalls als selten. Von zehn geprüften Namen führten drei einen HTTPS-Eintrag: cloudflare.com, www.cloudflare.com und w3.org.

Was daraus folgt

Für den Betrieb einer Seite ist die Reihenfolge das Brauchbare.

Alt-Svc zu schicken kostet einen Header und hebt jede Anfrage nach der ersten auf HTTP/3. Das ist die billige Hälfte, und sechs von zwanzig Seiten haben sie.

Der HTTPS-Eintrag im DNS ist die Hälfte, die schon die erste Anfrage erreicht, und genau die hat fast niemand gesetzt. Wo ein Besuch typischerweise aus einer Seite besteht, läge dort der Gewinn.

Und eine Messung, ob eine Seite HTTP/3 unterstützt, beantwortet eine andere Frage als die, ob eine Seite über HTTP/3 benutzt wird. Die zwanzig hier unterstützen das eine und wurden mit dem anderen benutzt.

Wie der HTTPS-Eintrag aufgebaut ist, welche Parameter er trägt und was zwanzig Domains in einer eigenen Messung am 5. September 2026 darin veröffentlicht haben, beschreibt Der HTTPS-Eintrag im DNS: HTTP/3 finden, ohne den Umweg.

Fragen und Antworten

Was muss am Netz stimmen, bevor eine Seite Alt-Svc schickt?

Der UDP-Port 443 muss auf dem ganzen Weg offen sein. Viele Aufbauten sind nur für TCP eingerichtet: Die Firewall des Servers erlaubt 443/tcp, der Router leitet nur TCP weiter, ein vorgeschalteter Filter des Anbieters lässt UDP nicht durch. HTTP/2 funktioniert dann tadellos, und nichts deutet auf das Problem hin.

Schickt die Seite in diesem Zustand Alt-Svc, laufen Browser bei der nächsten Anfrage in einen Verbindungsversuch, der nie zustande kommt. Sie fallen auf HTTP/2 zurück, doch der Artikel nennt den Preis: Ein misslungener UDP-Versuch kostet Wartezeit. Die Ankündigung macht die Seite dann langsamer statt schneller.

Zwei Dinge helfen. Erstens eine Prüfung von außerhalb des eigenen Netzes mit einem Programm, das HTTP/3 erzwingen kann; wie das Beispiel spiegel.de zeigt, hängt das Ergebnis vom Weg ab. Zweitens ein kurzer Wert für ma im Header, also die Gültigkeit der Ankündigung in Sekunden. Fehlt ma, gilt die Ankündigung nach RFC 7838 für 24 Stunden, und so lange bleibt eine falsche Ankündigung im Umlauf, auch wenn sie längst entfernt wurde.

Zählt HTTP/3 auch, wenn ein CDN vor der Seite steht?

Ja, aber nur auf der Strecke zwischen Browser und CDN. Der Ursprungsserver dahinter kann weiter HTTP/1.1 oder HTTP/2 sprechen, und den Alt-Svc-Header schickt dann meist das CDN, nicht der eigene Server.

Wie sieht ein HTTPS-Eintrag im DNS aus?

In seiner einfachsten Form so:

example.com. 3600 IN HTTPS 1 . alpn=h3,h2

Die 1 ist die Priorität und zeigt an, dass der Eintrag Dienstparameter trägt; der Punkt danach bedeutet, dass derselbe Name gemeint ist; alpn listet die Protokolle, die der Server spricht. Ein Browser, der diesen Eintrag abfragt, weiß damit schon vor der ersten Verbindung, dass HTTP/3 angeboten wird.

Zwei Voraussetzungen gehören dazu. Der DNS-Anbieter muss den Eintragstyp HTTPS unterstützen, was nicht jeder tut. Und der Eintrag ersetzt keinen offenen UDP-Port 443: Er kündigt nur an, genau wie Alt-Svc, und eine Ankündigung ohne erreichbaren Port kostet dieselbe Wartezeit, diesmal schon beim ersten Besuch.

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Kontakt

Eine Frage oder eine Idee für ein Webprojekt? Schreib mir kurz, worum es geht. Das Formular nutzt reCAPTCHA zum Schutz vor Spam.

Kommentar schreiben

Randfälle, die der Artikel nicht behandelt, und Rückfragen zum Code sind hier willkommen.

Die E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit einem Stern versehen.