Was ist HTTP/3?
HTTP/3 (RFC 9114) ist die dritte Hauptversion von HTTP. Statt über TCP läuft es über QUIC (RFC 9000), ein Transportprotokoll auf UDP mit eingebautem TLS 1.3. Verbindungsaufbau und Verschlüsselung passieren in einem Schritt, ein verlorenes Paket hält nicht mehr alle parallelen Anfragen auf, und eine Verbindung übersteht den Wechsel vom WLAN ins Mobilfunknetz.
Alle großen Browser sprechen HTTP/3, ebenso CDNs wie Cloudflare und Webserver wie Caddy, LiteSpeed und nginx ab Version 1.25. Für Besucher im Mobilfunk mit schwankender Verbindung ist der Unterschied am deutlichsten.
Wie HTTP/3 angekündigt wird
Ein Browser weiß vorher nicht, ob ein Server QUIC spricht. Deshalb kommt die erste Verbindung meist über HTTP/2, und der Server kündigt im Header Alt-Svc an, dass derselbe Dienst auch über HTTP/3 erreichbar ist: h3 steht für HTTP/3, die Zahl nach dem Doppelpunkt für den UDP-Port, ma für die Dauer in Sekunden, die sich der Browser das merkt. Ab der nächsten Verbindung versucht er QUIC.
HTTP/2 200
content-type: text/html; charset=utf-8
alt-svc: h3=":443"; ma=86400Warum kaputtes HTTP/3 auffällt
Der typische Fall: Der Webserver kündigt HTTP/3 an, aber UDP-Port 443 ist zu. Nach einem Serverumzug, einer neuen Firewall-Regel oder beim Hoster, der nur TCP 443 freigibt. Der Alt-Svc-Header bleibt, denn er kommt aus der Konfiguration des Webservers.
Browser versuchen dann QUIC, warten auf eine Antwort und fallen auf HTTP/2 zurück. Die Seite lädt, aber spürbar langsamer, und Monitoring über TCP bleibt grün. Genau diesen Zustand findet der Check: angekündigt, aber über QUIC nicht erreichbar.
Was der Check prüft
- Domain und www. Gibst du eine Subdomain ein, etwa shop.beispiel.de, nur diesen Host.
- Alt-Svc der endgültigen Antwort nach allen Weiterleitungen, mit dem angekündigten Port.
- Ein zweiter Abruf ausschließlich über HTTP/3 an genau diesen Origin, ohne Rückfall auf TCP.
- Angekündigt, aber keine Antwort über QUIC: Warnung. Vorher prüft der Check den eigenen QUIC-Weg über Referenzziele, damit eine Störung beim Prüfstandort keinen Fehlalarm auslöst.
- Kein h3 im Alt-Svc-Header: Hinweis. HTTP/3 ist freiwillig, im Domain-Check kostet das keine Punkte.
HTTP/3 einrichten
Zwei Dinge müssen zusammenpassen: Der Webserver lauscht auf QUIC, und UDP 443 ist auf dem ganzen Weg offen.
- Webserver: in nginx ab 1.25 eine zusätzliche listen-Zeile mit quic und der Alt-Svc-Header; Caddy und LiteSpeed haben HTTP/3 von Haus aus aktiv.
- Firewall: UDP 443 eingehend freigeben, auf dem Server und in einer vorgeschalteten Hoster-Firewall. Regeln für TCP 443 gelten nicht für UDP.
- Load Balancer und Reverse Proxy: Viele leiten nur TCP weiter. Dann QUIC dort terminieren oder den Alt-Svc-Header entfernen.
- Lässt sich UDP nicht freigeben, den Alt-Svc-Header entfernen. Ohne Ankündigung versucht kein Browser HTTP/3, und es gibt keine Wartezeit.
server {
listen 443 ssl;
listen 443 quic reuseport;
http2 on;
server_name beispiel.de www.beispiel.de;
add_header Alt-Svc 'h3=":443"; ma=86400' always;
}HTTP/3 dauerhaft überwachen
Ein gesperrter UDP-Port fällt bei der eigenen Kontrolle selten auf, weil der Browser leise auf HTTP/2 zurückfällt. DomainWarn prüft die Websites aller Kundendomains auf HTTP/3, im Free-Tarif alle 6 Stunden, sonst stündlich. Antwortet angekündigtes HTTP/3 zweimal in Folge nicht über QUIC, entsteht ein Incident, und eine Änderung der Ankündigung steht in der Zeitleiste.
Häufige Fragen
- Muss meine Website HTTP/3 können?
- Nein. HTTP/2 ist schnell und von allen Browsern unterstützt. HTTP/3 bringt vor allem im Mobilfunk Vorteile. Problematisch ist nur eine Ankündigung, hinter der nichts antwortet: Sie ist schlechter als gar keine.
- Mein Browser zeigt HTTP/3, der Check meldet es trotzdem als nicht erreichbar?
- Vielleicht kam deine Verbindung über ein CDN oder einen anderen Standort, oder der Browser nutzt eine gemerkte Verbindung. Mit curl --http3-only -I https://beispiel.de/ testest du gezielt über QUIC, von einem Rechner außerhalb deines Netzes.
- Warum zeigt der Check „nicht geprüft“?
- Um über QUIC abzurufen, braucht der Prüfstandort selbst einen funktionierenden UDP-Weg. Fehlt er, zeigt der Check nur, was der Alt-Svc-Header ankündigt, und sagt ausdrücklich, dass die Erreichbarkeit nicht geprüft wurde. Das ist kein Befund über deine Website.