Oznámená podpora ešte neznamená funkčnosť
Server oznamuje HTTP/3 v hlavičke odpovede Alt-Svc, ktorú klient dostane cez HTTP/1.1 alebo HTTP/2. Hlavička je len prísľub. HTTP/3 beží cez QUIC na UDP, takže stránka sa môže normálne načítať aj pri úplne zablokovanom UDP a prehliadač bez upozornenia zostane na HTTP/2.
curl -sI https://server.example/ | grep -i alt-svcPotvrďte skutočný prenos
Iba dokončená požiadavka cez QUIC potvrdzuje HTTP/3. Použite curl zostavený s podporou HTTP/3; mnohé systémové balíky ju nemajú a vtedy sa voľba odmietne, čo nič nehovorí o serveri. V prehliadači otvorte vývojárske nástroje a pozrite stĺpec protokolu, ktorý pri takejto požiadavke ukazuje h3. Pri prvej návšteve môže prehliadač použiť HTTP/2, preto stránku načítajte znova.
curl -V | grep -i http3
curl -sS --http3-only -o /dev/null -w '%{http_version}\n' https://server.example/Skontrolujte konfiguráciu NGINX
NGINX potrebuje okrem počúvania na TCP aj počúvanie pre QUIC a použitá verzia aj zostavenie ho musia podporovať. Vyžaduje sa TLS 1.3, pretože QUIC ho používa priamo. Pred opätovným načítaním skontrolujte konfiguráciu. Hodnota ma v Alt-Svc udáva čas v sekundách, počas ktorého si klienti prísľub pamätajú, preto pri testovaní použite krátky čas.
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 -tPovoľte UDP 443 na celej trase
Najčastejšou príčinou zlyhania je firewall, ktorý povoľuje TCP 443, ale nie UDP 443. Skontrolujte server aj všetky externé filtre. Počúvanie na sokete možno overiť na serveri. Niektoré podnikové a verejné siete QUIC zámerne blokujú, takže neúspešný test z jednej siete nedokazuje chybu servera: zopakujte ho z inej siete.
sudo ss -lunp | grep ':443'
sudo ufw allow 443/udp
sudo tcpdump -ni any udp port 443Je nový protokol rýchlejší?
HTTP/3 pomáha najviac pri spojeniach so stratou paketov alebo pri prechode medzi sieťami, pretože stratený paket nezdržuje ostatné toky. Pri kvalitnom káblovom spojení môže byť rozdiel malý a využitie CPU na serveri môže byť vyššie. Namiesto predpokladaného zrýchlenia zmerajte vlastný prípad a ponechajte HTTP/2 dostupné pre klientov, ktorí nemôžu používať UDP.
Test HTTP/3 v CH-J Server Manager
Server Diagnostics obsahuje pribaleného klienta HTTP, takže test nezávisí od systémového curl. HTTP/3 označí za potvrdené iba po dokončenom prenose QUIC a Alt-Svc považuje iba za oznámenie podpory. Pri vypršaní časového limitu UDP uvádza, že podpora servera zostáva neoverená, pretože príčina môže byť v sieti medzi vami a serverom, a prechod na iný protokol nepovažuje za úspech.