Paskelbta dar nereiškia, kad veikia
Serveris paskelbia apie HTTP/3 atsakymo antraštėje Alt-Svc, kurią klientas gauna per HTTP/1.1 arba HTTP/2. Antraštė tėra pažadas. HTTP/3 veikia per QUIC naudodamas UDP, todėl puslapis gali normaliai įsikelti net visiškai užblokavus UDP, o naršyklė nepastebimai lieka prie HTTP/2.
curl -sI https://server.example/ | grep -i alt-svcPatvirtinkite tikrą perdavimą
Tik užbaigta užklausa per QUIC patvirtina HTTP/3. Naudokite curl, sukompiliuotą su HTTP/3 palaikymu; daugelis sistemos paketų jo neturi, todėl parinktis atmetama, ir tai nieko nepasako apie serverį. Naršyklėje atverkite kūrėjo įrankius ir pažiūrėkite į stulpelį Protocol: tokiai užklausai jame rodoma h3. Pirmą kartą naršyklė gali naudoti HTTP/2, todėl įkelkite puslapį dar kartą.
curl -V | grep -i http3
curl -sS --http3-only -o /dev/null -w '%{http_version}\n' https://server.example/Patikrinkite NGINX konfigūraciją
NGINX reikia QUIC klausymo lizdo greta TCP lizdo, o naudojama versija ir jos kompiliacija turi tai palaikyti. Būtinas TLS 1.3, nes QUIC jį naudoja tiesiogiai. Prieš iš naujo įkeldami konfigūraciją ją patikrinkite. Alt-Svc reikšmė ma nurodo laiką sekundėmis, kiek klientai prisimena pažadą, todėl bandydami naudokite trumpą laiką.
listen 443 ssl;
listen 443 quic reuseport;
http2 on;
add_header Alt-Svc 'h3=":443"; ma=300' always;
nginx -V 2>&1 | grep -o with-http_v3_module
sudo nginx -tAtverkite UDP 443 visame kelyje
Dažniausia nesėkmės priežastis – ugniasienė, leidžianti TCP 443, bet ne UDP 443. Patikrinkite serverį ir visus išorinius filtrus. Serveryje galima patvirtinti, kad lizdas klausosi. Kai kurie įmonių ir viešieji tinklai sąmoningai blokuoja QUIC, todėl nepavykęs bandymas iš vieno tinklo neįrodo serverio kaltės: pakartokite iš kito tinklo.
sudo ss -lunp | grep ':443'
sudo ufw allow 443/udp
sudo tcpdump -ni any udp port 443Ar naujas protokolas spartesnis?
HTTP/3 labiausiai padeda ryšiuose, kuriuose prarandami paketai, arba keičiant tinklą, nes prarastas paketas nesustabdo kitų srautų. Esant geram laidiniam ryšiui skirtumas gali būti mažas, o serverio CPU naudojimas – didesnis. Užuot tikėjęsi naudos, išmatuokite savo atvejį ir palikite HTTP/2 klientams, kurie negali naudoti UDP.
HTTP/3 patikra CH-J Server Manager programoje
Server Diagnostics turi integruotą HTTP klientą, todėl patikra nepriklauso nuo sistemos curl. HTTP/3 pažymimas kaip patvirtintas tik po užbaigto QUIC perdavimo, o Alt-Svc laikoma tik skelbimu. Pasibaigus UDP laukimo laikui nurodoma, kad serverio palaikymas lieka nepatikrintas, nes priežastis gali būti tinklas tarp jūsų ir serverio; perėjimas prie kito protokolo nelaikomas sėkme.