Anunțat nu înseamnă funcțional
Un server anunță HTTP/3 în antetul de răspuns Alt-Svc, pe care clientul îl primește prin HTTP/1.1 sau HTTP/2. Antetul este doar o promisiune. HTTP/3 rulează prin QUIC peste UDP, astfel că pagina se poate încărca normal cu UDP complet blocat, iar browserul rămâne pe HTTP/2 fără să te anunțe.
curl -sI https://server.example/ | grep -i alt-svcConfirmă un transfer real
Doar o cerere finalizată prin QUIC confirmă HTTP/3. Folosește curl compilat cu suport pentru HTTP/3; multe pachete de sistem nu îl au, iar atunci opțiunea este respinsă, ceea ce nu spune nimic despre server. În browser, deschide instrumentele pentru dezvoltatori și citește coloana Protocol, care arată h3 pentru o astfel de cerere. Browserul poate folosi HTTP/2 la prima vizită, așa că încarcă pagina din nou.
curl -V | grep -i http3
curl -sS --http3-only -o /dev/null -w '%{http_version}\n' https://server.example/Verifică configurația NGINX
NGINX are nevoie de un listener QUIC pe lângă cel TCP, iar versiunea și modul de compilare trebuie să îl suporte. Este necesar TLS 1.3, deoarece QUIC îl folosește direct. Verifică configurația înainte de reîncărcare. Valoarea ma din Alt-Svc reprezintă timpul în secunde pentru care clienții țin minte promisiunea, așa că folosește o valoare mică în timpul testelor.
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 -tDeschide UDP 443 pe întregul traseu
Cea mai frecventă cauză a eșecului este un firewall care permite TCP 443, dar nu și UDP 443. Verifică serverul și toate filtrele externe. Pe server poți confirma că socketul ascultă. Unele rețele de companie și publice blochează QUIC intenționat, deci un test eșuat dintr-o singură rețea nu dovedește că serverul este de vină: repetă-l din alta.
sudo ss -lunp | grep ':443'
sudo ufw allow 443/udp
sudo tcpdump -ni any udp port 443Este noul protocol mai rapid?
HTTP/3 ajută cel mai mult pe conexiuni cu pierderi de pachete sau când se schimbă rețeaua, deoarece un pachet pierdut nu blochează celelalte fluxuri. Pe o conexiune bună prin cablu, diferența poate fi mică, iar utilizarea CPU pe server poate fi mai mare. Măsoară propriul caz în loc să presupui un câștig și păstrează HTTP/2 disponibil pentru clienții care nu pot folosi UDP.
Testul HTTP/3 din CH-J Server Manager
Server Diagnostics include un client HTTP, deci testul nu depinde de curl din sistem. Raportează HTTP/3 drept confirmat doar după un transfer QUIC finalizat și tratează Alt-Svc doar ca pe un anunț. La expirarea timpului de așteptare UDP, indică faptul că suportul serverului rămâne neverificat, deoarece cauza poate fi rețeaua dintre tine și server, și nu consideră trecerea la alt protocol un succes.