Annonserat är inte detsamma som fungerande
En server annonserar HTTP/3 i svarshuvudet Alt-Svc, som klienten tar emot via HTTP/1.1 eller HTTP/2. Huvudet är bara ett löfte. HTTP/3 körs över QUIC på UDP, så sidan kan laddas normalt även om UDP är helt blockerat, medan webbläsaren utan att säga till fortsätter med HTTP/2.
curl -sI https://server.example/ | grep -i alt-svcBekräfta en verklig överföring
Endast en slutförd begäran över QUIC bekräftar HTTP/3. Använd en curl som byggts med stöd för HTTP/3; många systempaket saknar det, och då avvisas alternativet, vilket inte säger något om servern. Öppna utvecklarverktygen i webbläsaren och läs protokollkolumnen, som visar h3 för en sådan begäran. Webbläsaren kan använda HTTP/2 vid första besöket, så ladda sidan igen.
curl -V | grep -i http3
curl -sS --http3-only -o /dev/null -w '%{http_version}\n' https://server.example/Kontrollera NGINX-konfigurationen
NGINX behöver en QUIC-lyssnare utöver TCP-lyssnaren, och versionen och dess bygge måste stödja detta. TLS 1.3 krävs eftersom QUIC använder det direkt. Kontrollera konfigurationen innan du laddar om den. Värdet ma i Alt-Svc anger tiden i sekunder som klienterna minns löftet, så använd ett kort värde under testning.
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 -tÖppna UDP 443 längs hela vägen
Den vanligaste orsaken till fel är en brandvägg som tillåter TCP 443 men inte UDP 443. Kontrollera servern och alla externa filter. Att en socket lyssnar kan bekräftas på servern. Vissa företagsnät och publika nät blockerar QUIC avsiktligt, så ett misslyckat test från ett nät bevisar inte att felet ligger på servern: upprepa det från ett annat.
sudo ss -lunp | grep ':443'
sudo ufw allow 443/udp
sudo tcpdump -ni any udp port 443Är det nya protokollet snabbare?
HTTP/3 hjälper mest på anslutningar med paketförluster eller vid nätverksbyten, eftersom ett förlorat paket inte fördröjer andra strömmar. På en bra kabelanslutning kan skillnaden vara liten och CPU-användningen på servern kan vara högre. Mät ditt eget fall i stället för att förutsätta en vinst och behåll HTTP/2 för klienter som inte kan använda UDP.
HTTP/3-testet i CH-J Server Manager
Server Diagnostics har en medföljande HTTP-klient, så testet är inte beroende av systemets curl. Det rapporterar HTTP/3 som bekräftat först efter en slutförd QUIC-överföring och behandlar Alt-Svc enbart som en annons om stöd. Vid en UDP-timeout anges att serverstödet fortfarande är overifierat, eftersom orsaken kan ligga i nätverket mellan dig och servern, och en övergång till ett annat protokoll räknas inte som ett lyckat test.