LW IT Solutions logo LW IT Solutions logo LW IT Solutions
« Przegląd bloga /Tworzenie stron internetowych/Tutorials / HTTP/3 przy pierwszej wizycie: jak klient odkrywa...
Ten artykuł w innych językach:

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

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
  1. Inny transport, nadal negocjacja TLS
  2. Trzy drogi do HTTP/3
  3. Wyniki dwudziestu zapisanych pobrań
  4. Bezpośrednie pierwsze żądanie może użyć HTTP/3
  5. Odczyt rekordu HTTPS w DNS
  6. Pytania i odpowiedzi
  7. Źródła

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.

Zapowiedź, osiągalny punkt i wybrany protokół odpowiadają na różne pytania.
Zapowiedź, osiągalny punkt i wybrany protokół odpowiadają na różne pytania.

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.

Abstrakcyjne równoległe drogi z elementem łączącym

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.

Lukas Wójcik

Lukas Wójcik

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

Masz pytanie lub pomysł na projekt internetowy? Napisz krótko, o co chodzi. Formularz korzysta z reCAPTCHA do ochrony przed spamem.

Napisanie komentarza

Przypadki brzegowe pominięte w artykule i pytania o kod są tu mile widziane.

Adres e-mail nie jest publikowany. Pola obowiązkowe oznaczono gwiazdką.