Annonceret er ikke det samme som fungerende
En server annoncerer HTTP/3 i svarheaderen Alt-Svc, som klienten modtager over HTTP/1.1 eller HTTP/2. Headeren er kun et løfte. HTTP/3 kører over QUIC på UDP, så siden kan indlæses normalt med UDP helt blokeret, mens browseren ubemærket fortsætter med HTTP/2.
curl -sI https://server.example/ | grep -i alt-svcBekræft en reel overførsel
Kun en fuldført forespørgsel over QUIC bekræfter HTTP/3. Brug en curl, der er bygget med understøttelse af HTTP/3; mange systempakker er ikke, og så afvises indstillingen, hvilket intet siger om serveren. Åbn udviklerværktøjerne i en browser, og se i protokolkolonnen, der viser h3 for sådan en forespørgsel. Browseren kan bruge HTTP/2 ved første besøg, så indlæs siden igen.
curl -V | grep -i http3
curl -sS --http3-only -o /dev/null -w '%{http_version}\n' https://server.example/Kontrollér NGINX-konfigurationen
NGINX skal have en QUIC-lytter ved siden af TCP-lytteren, og versionen og dens build skal understøtte det. TLS 1.3 er påkrævet, fordi QUIC bruger det direkte. Kontrollér konfigurationen før genindlæsning. Værdien ma i Alt-Svc er den tid i sekunder, som klienterne husker løftet, så brug en kort værdi under test.
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Åbn UDP 443 hele vejen
Den hyppigste årsag til fejl er en firewall, der tillader TCP 443, men ikke UDP 443. Kontrollér serveren og alle eksterne filtre. På serveren kan du bekræfte, om socketen lytter. Nogle virksomhedsnetværk og offentlige netværk blokerer QUIC med vilje, så en mislykket test fra ét netværk beviser ikke en fejl på serveren: gentag den fra et andet.
sudo ss -lunp | grep ':443'
sudo ufw allow 443/udp
sudo tcpdump -ni any udp port 443Er den nye protokol hurtigere?
HTTP/3 hjælper mest på forbindelser med pakketab eller ved skift mellem netværk, fordi en mistet pakke ikke forsinker andre strømme. På en god kabelforbindelse kan forskellen være lille, og CPU-forbruget på serveren kan være højere. Mål dit eget tilfælde i stedet for at antage en gevinst, og behold HTTP/2 til klienter, der ikke kan bruge UDP.
HTTP/3-testen i CH-J Server Manager
Server Diagnostics har en medfølgende HTTP-klient, så testen ikke afhænger af systemets curl. Den melder kun HTTP/3 som bekræftet efter en fuldført QUIC-overførsel og behandler Alt-Svc som en annoncering alene. Ved UDP-timeout oplyser den, at serverens understøttelse stadig er ubekræftet, fordi årsagen kan være netværket mellem dig og serveren. Et skift til en anden protokol tæller ikke som succes.