HTTP/3 przy pierwszej wizycie: jak klient odkrywa protokół i co odpowiedziało dwadzieścia stron

Management Summary
HTTP/3 to nowszy sposób przesyłania treści strony między przeglądarką a serwerem. Użycie przy pierwszej wizycie wymaga znalezienia odpowiednich informacji o połączeniu. Artykuł wyjaśnia ten proces na podstawie obserwacji dwudziestu witryn. Ogłoszenie obsługi, osiągalność i faktyczne użycie są różnymi etapami. Udane bezpośrednie pierwsze pobrania z trzech badanych stron pokazują taką możliwość, ale nie dowodzą wyboru przez każdą przeglądarkę ani szybszego ładowania.
Spis treści
HTTP/3 może przenieść już pierwsze żądanie do witryny. Wynik zależy od klienta, dostępnych informacji o punkcie końcowym i drogi sieciowej. Zapowiedź HTTP/3, osiągalny punkt QUIC oraz żądanie rzeczywiście przesłane przez HTTP/3 to trzy różne obserwacje.
Inny transport, nadal negocjacja TLS
HTTP/3 korzysta z QUIC przez UDP. HTTPS z HTTP/1.1 lub HTTP/2 zwykle używa TLS przez TCP. QUIC również zawiera negocjację TLS: HTTP/3 jest zazwyczaj wybierane identyfikatorem ALPN h3. Istniejące połączenie TCP nie zmienia się przez to w HTTP/3.
QUIC przesyła oddzielne wymiany HTTP w niezależnych strumieniach. Brak pakietu w jednym strumieniu nie zatrzymuje więc automatycznie innych niezależnych strumieni, jak może się zdarzyć przy TCP. Straty nadal mają znaczenie: jeden pakiet może zawierać dane kilku strumieni, kontrola przeciążenia obejmuje połączenie, a zależności aplikacji mogą opóźniać pracę. HTTP/3 nie gwarantuje powszechnego przyspieszenia.

Trzy drogi do HTTP/3
- Zapowiedź usługi alternatywnej: odpowiedź HTTP może zawierać
Alt-Svc: h3=":443"; ma=3600. To zapowiedź równoważnego punktu końcowego na porcie UDP 443 tego samego hosta, z okresem świeżości wynoszącym godzinę. Obsługujący mechanizm klient może przesyłać tam późniejsze żądania, również zasoby w ramach tego samego ładowania strony. Automatyczne przełączenie każdego kolejnego żądania nie jest gwarantowane. - Informacje DNS: rekord HTTPS może opisać protokół i punkt końcowy jeszcze przed pierwszym żądaniem HTTP. Zachowanie klienta i resolvera decyduje o pobraniu oraz wykorzystaniu tych danych.
- Bezpośrednia próba lub inne źródło wiedzy: RFC 9114 dopuszcza bezpośrednią próbę połączenia QUIC. Odpowiednio skonfigurowane narzędzie nie potrzebuje wcześniejszej odpowiedzi HTTP/2.
Powrót do starszej wersji jest możliwy. Przykładowo curl z --http3 może po krótkim opóźnieniu równolegle próbować połączenia TCP; --http3-only celowo wyklucza taką alternatywę. Strategie przeglądarek różnią się. Nieudana próba UDP może dodać opóźnienie, ale nie musi wymuszać oczekiwania na pełny limit czasu UDP.
Wyniki dwudziestu zapisanych pobrań
Próbka pochodzi z 24 października 2026, z okresu od 04:45:33 do 04:45:37 UTC, z jednej sieci i programu curl 8.14.1 obsługującego HTTP/3. Każda domena otrzymała osobny proces curl. Śledzono do pięciu przekierowań HTTPS, bez opcji --http3 i bez zapisanego bufora Alt-Svc. Limit czasu wynosił 25 sekund, a limit rozmiaru transferu 10 MB. Były to żądania narzędzia wiersza poleceń, nie ładowanie stron w przeglądarce.
Tabela przedstawia ostatnią odpowiedź w każdym łańcuchu przekierowań, a nie wszystkie połączenia pośrednie. Osiemnaście końcowych odpowiedzi używało HTTP/2, dwie HTTP/1.1. Cztery końcowe odpowiedzi zapowiadały standardowy identyfikator h3. To liczba zapowiedzi, a nie pełny test obsługi HTTP/3.
| Domena | Status | Wersja HTTP | Zapowiedź h3 | Treść |
|---|---|---|---|---|
| wikipedia.org | 200 | 2 | nie | zwykły HTML |
| github.com | 200 | 2 | nie | zwykły HTML |
| bbc.com | 200 | 2 | tak | zwykły HTML |
| nytimes.com | 403 | 2 | nie | blokada dostępu |
| cloudflare.com | 200 | 2 | tak | zwykły HTML |
| mozilla.org | 200 | 2 | nie | zwykły HTML |
| apple.com | 200 | 2 | nie | zwykły HTML |
| microsoft.com | 200 | 2 | nie | blokada dostępu |
| spiegel.de | 200 | 2 | tak | zwykły HTML |
| heise.de | 200 | 2 | nie | zwykły HTML |
| python.org | 200 | 2 | nie | zwykły HTML |
| debian.org | 200 | 2 | nie | zwykły HTML |
| kernel.org | 200 | 2 | nie | zwykły HTML |
| gnu.org | 200 | 1.1 | nie | zwykły HTML |
| w3.org | 200 | 2 | tak | zwykły HTML |
| nginx.org | 200 | 1.1 | nie | zwykły HTML |
| postgresql.org | 200 | 2 | nie | zwykły HTML |
| zeit.de | 403 | 2 | nie | blokada dostępu |
| tagesschau.de | 200 | 2 | nie | zwykły HTML |
| php.net | 200 | 2 | nie | zwykły HTML |
Siedemnaście odpowiedzi zawierało zwykły HTML stron. New York Times i ZEIT zwróciły blokady dostępu ze statusem 403; Microsoft zwrócił stronę blokady ze statusem 200. Te trzy wiersze nadal pokazują transport odpowiedzi, ale nie opisują żądanej strony głównej. Brak nagłówka Alt-Svc w jednej odpowiedzi nie dowodzi braku obsługi HTTP/3.
Bezpośrednie pierwsze żądanie może użyć HTTP/3
Osobny test 25 października 2026 o 14:47:15 UTC uruchomił świeży proces z --http3-only dla każdej z domen cloudflare.com, bbc.com i w3.org. Nie przekazano bufora Alt-Svc ani nie śledzono przekierowań. Wszystkie trzy żądania zakończyły się kodem wyjścia curl 0, wersją HTTP 3 i statusem 301 wskazującym odpowiedni host www.
To potwierdza odpowiedź HTTP/3 bez wcześniejszego żądania HTTP/2 w tych procesach testowych. Nie potwierdza odkrywania przez przeglądarkę, pobrania strony głównej ani przewagi szybkości. Protokół został jawnie wybrany w konfiguracji.

Odczyt rekordu HTTPS w DNS
example.com. 3600 IN HTTPS 1 . alpn=h3,h2
Ten umowny przykład używa ServiceMode, ponieważ priorytet jest różny od zera. Kropka oznacza, że celem jest nazwa na początku rekordu, tutaj example.com; alpn zapowiada HTTP/3 i HTTP/2. TTL pozwala przechowywać ten rekord DNS w pamięci podręcznej przez 3600 sekund. Potrzebny jest rzeczywiście skonfigurowany punkt końcowy i odpowiednie rekordy adresowe; publikacja tekstu nie uruchamia serwera. Nie wymusza też wyboru HTTP/3 przez każdego klienta.
Dalsze informacje zawiera Rekord HTTPS w DNS: znaleźć HTTP/3 bez objazdu.
Pytania i odpowiedzi
Który port musi być osiągalny?
Osiągalny musi być zapowiedziany punkt UDP, często port 443, ale niekoniecznie. Sam port TCP 443 nie zapewnia QUIC. Nieudana próba zewnętrzna dotyczy konkretnego klienta i drogi sieciowej; nie wystarcza do stwierdzenia globalnej niedostępności.
Jak długo może utrzymywać się błędna zapowiedź Alt-Svc?
Bez ma RFC 7838 określa świeżość przez 24 godziny od utworzenia wiadomości; wiek odpowiedzi również się liczy. Krótszy okres może ograniczyć ryzyko wdrożenia. Usunięcie nagłówka nie kasuje natychmiast istniejącego bufora klienta. Odebrane Alt-Svc: clear żąda odrzucenia zapisanych zapowiedzi, ale nie dociera do klienta pozostającego offline.
Co zmienia CDN?
Zmierzony protokół opisuje połączenie klienta z CDN. Odcinek od CDN do serwera źródłowego może korzystać z innej wersji. Udane połączenie z CDN samo w sobie nie potwierdza protokołu serwera źródłowego.
Co powinien zawierać użyteczny zapis testu?
Wersję i opcje klienta, stan bufora, dokładny URL, łańcuch przekierowań, czas, drogę sieciową, wynegocjowany protokół, kod wyjścia i treść odpowiedzi. Zapowiedź, osiągalność i zaobserwowany wybór wymagają osobnych wyników. Porównanie szybkości wymaga powtarzanych prób.