Der Alt-Svc-Header erklärt: Wie Browser HTTP/3 überhaupt finden
HTTP/3 hat ein Henne-Ei-Problem: Der Browser müsste wissen, dass ein Server QUIC spricht, bevor er ihn fragen kann. Der Alt-Svc-Header ist die Antwort darauf – und der Grund, warum die allererste Anfrage grundsätzlich nicht über HTTP/3 läuft.
Das Problem
HTTP/1.1 und HTTP/2 laufen über TCP, HTTP/3 über UDP. Ein Browser, der eine Domain zum ersten Mal besucht, weiß nicht, welche Protokolle sie kann. Er könnte parallel TCP und UDP probieren – das kostet aber Zeit und Traffic bei jedem einzelnen Erstkontakt im Netz.
Stattdessen macht er es andersherum: Er verbindet sich ganz normal über TCP (HTTP/1.1 oder
HTTP/2), und der Server teilt ihm in der Antwort mit, dass es ihn auch über QUIC gibt. Genau
das ist Alt-Svc – „alternative service".
Was drinsteht
Alt-Svc: h3=":443"; ma=86400
h3– das angebotene Protokoll.h3ist das finale HTTP/3 (RFC 9114). Ältere Server annoncieren teils zusätzlich Entwurfsversionen wieh3-29; nötig ist das heute nicht mehr.":443"– Host und Port des Alternativdienstes. Der leere Host vor dem Doppelpunkt heißt „derselbe Host wie gerade". Ein anderer Port wäre möglich, ist in der Praxis aber selten sinnvoll.ma=86400– max age in Sekunden. So lange darf der Browser sich merken, dass es HTTP/3 gibt, ohne erneut zu fragen. 86400 = ein Tag.
Mehrere Angebote werden per Komma getrennt. Ein persist=1 weist den Browser an,
die Information auch über Netzwerkwechsel hinweg zu behalten.
Der Ablauf in der Praxis
- Erster Besuch: TCP-Verbindung, TLS-Handshake, HTTP/2. Antwort enthält
Alt-Svc. - Der Browser merkt sich den Eintrag und lädt die aktuelle Seite noch über HTTP/2 zu Ende.
- Ab der nächsten Verbindung – oft schon für die Assets derselben Seite – versucht er QUIC.
- Klappt QUIC nicht, fällt er still auf TCP zurück. Der Besucher merkt davon nichts.
Deshalb zeigen Entwicklertools beim allerersten Aufruf einer Seite oft „h2" an, obwohl HTTP/3 einwandfrei funktioniert. Einmal neu laden genügt meist.
Warum unser Check zwei Zeilen hat
Der Alt-Svc-Header ist ein Versprechen, kein Beweis. Ein Server kann
HTTP/3 annoncieren, obwohl UDP/443 von der Firewall verschluckt wird – der Header ist
ja nur Text in einer TCP-Antwort.
Genau deshalb prüft h3check beides getrennt: „HTTP/3 angekündigt" liest den Header aus, „HTTP/3 funktioniert" baut anschließend eine echte QUIC-Verbindung auf und ruft die Seite darüber ab. Die Kombination angekündigt = JA, funktioniert = NEIN ist der mit Abstand häufigste Befund – und fast immer ein Firewall-Problem.
Der Nachfolger: HTTPS-Records im DNS
Alt-Svc kostet immer einen Umweg über TCP. Der neuere Weg ist der HTTPS-Resource-Record (RFC 9460, verwandt mit SVCB). Damit steht schon im DNS, dass eine Domain HTTP/3 spricht:
example.com. 3600 IN HTTPS 1 . alpn="h3,h2"
Der Browser erfährt es also zeitgleich mit der IP-Adresse und kann sofort QUIC sprechen – ohne den ersten TCP-Umweg. Cloudflare setzt diese Records automatisch, andere Anbieter ziehen nach. Alt-Svc bleibt trotzdem noch lange nötig, weil längst nicht jeder Resolver und Browser den neuen Record-Typ auswertet.