Oznámená podpora neznamená funkčnost
Server oznamuje HTTP/3 v hlavičce odpovědi Alt-Svc, kterou klient obdrží přes HTTP/1.1 nebo HTTP/2. Hlavička je pouze příslib. HTTP/3 běží přes QUIC nad UDP, takže se stránka může normálně načíst i při zcela blokovaném UDP a prohlížeč bez upozornění zůstane u HTTP/2.
curl -sI https://server.example/ | grep -i alt-svcPotvrzení skutečného přenosu
Pouze dokončený požadavek přes QUIC potvrzuje HTTP/3. Použijte curl sestavený s podporou HTTP/3; mnoho systémových balíčků ji nemá a volbu pak odmítne, což o serveru nic nevypovídá. V prohlížeči otevřete vývojářské nástroje a podívejte se do sloupce protokolu, kde takový požadavek má hodnotu h3. Při první návštěvě může prohlížeč použít HTTP/2, proto stránku načtěte znovu.
curl -V | grep -i http3
curl -sS --http3-only -o /dev/null -w '%{http_version}\n' https://server.example/Kontrola konfigurace NGINX
NGINX potřebuje vedle naslouchání na TCP také naslouchání pro QUIC a jeho verze i sestavení to musí podporovat. Je vyžadováno TLS 1.3, protože ho QUIC přímo používá. Před opětovným načtením konfiguraci zkontrolujte. Hodnota ma v Alt-Svc udává dobu v sekundách, po kterou si klienti příslib pamatují; při testování proto použijte krátkou dobu.
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 -tPovolte UDP 443 po celé trase
Nejčastější příčinou selhání je firewall, který povoluje TCP 443, ale ne UDP 443. Zkontrolujte server i všechny vnější filtry. Naslouchání na socketu lze ověřit na serveru. Některé firemní a veřejné sítě QUIC záměrně blokují, takže neúspěšný test z jedné sítě nedokazuje chybu serveru: zopakujte ho z jiné.
sudo ss -lunp | grep ':443'
sudo ufw allow 443/udp
sudo tcpdump -ni any udp port 443Je nový protokol rychlejší?
HTTP/3 pomáhá nejvíce u spojení se ztrátami paketů nebo při změnách sítě, protože ztracený paket nezdržuje ostatní proudy. Na kvalitním kabelovém připojení může být rozdíl malý a zatížení CPU serveru může vzrůst. Přínos nepředpokládejte, ale změřte vlastní situaci. Pro klienty, kteří nemohou používat UDP, ponechte dostupné HTTP/2.
Test HTTP/3 v CH-J Server Manager
Server Diagnostics obsahuje vlastního HTTP klienta, takže test nezávisí na systémovém curl. HTTP/3 označí jako potvrzené až po dokončeném přenosu QUIC a Alt-Svc považuje pouze za oznámení podpory. Při vypršení časového limitu UDP uvede, že podpora na serveru zůstává neověřená, protože příčina může být v síti mezi vámi a serverem. Přechod na jiný protokol se nepočítá jako úspěch.