Ilmoitettu tuki ei takaa toimivuutta
Palvelin ilmoittaa HTTP/3-tuesta vastauksen Alt-Svc-otsakkeessa, jonka asiakas saa HTTP/1.1- tai HTTP/2-yhteydellä. Otsake on vain lupaus. HTTP/3 toimii QUIC-protokollalla UDP:n päällä, joten sivu voi latautua normaalisti, vaikka UDP olisi kokonaan estetty, ja selain jatkaa huomaamatta käyttäen protokollaa HTTP/2.
curl -sI https://server.example/ | grep -i alt-svcVarmista todellinen siirto
Vain loppuun suoritettu pyyntö QUIC-yhteydellä vahvistaa protokollan HTTP/3. Käytä curl-versiota, joka on käännetty HTTP/3-tuella. Monista järjestelmäpaketeista tuki puuttuu, jolloin valitsin hylätään, mikä ei kerro palvelimesta mitään. Avaa selaimen kehittäjätyökalut ja katso protokollasaraketta: tällaisen pyynnön kohdalla siinä näkyy h3. Selain voi käyttää ensimmäisellä käynnillä HTTP/2:ta, joten lataa sivu uudelleen.
curl -V | grep -i http3
curl -sS --http3-only -o /dev/null -w '%{http_version}\n' https://server.example/Tarkista NGINX-määritys
NGINX tarvitsee TCP-kuuntelijan rinnalle QUIC-kuuntelijan, ja sekä version että koontiversion on tuettava sitä. TLS 1.3 vaaditaan, koska QUIC käyttää sitä suoraan. Tarkista määritys ennen sen uudelleenlatausta. Alt-Svc-otsakkeen ma-arvo kertoo sekunteina, kuinka kauan asiakkaat muistavat lupauksen, joten käytä testauksen aikana lyhyttä aikaa.
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 -tSalli UDP 443 koko reitillä
Yleisin epäonnistumisen syy on palomuuri, joka sallii TCP 443:n mutta ei UDP 443:a. Tarkista palvelin ja kaikki ulkoiset suodattimet. Pistokkeen kuuntelun voi varmistaa palvelimella. Jotkin yritysverkot ja julkiset verkot estävät QUIC-liikenteen tarkoituksella, joten yhdestä verkosta epäonnistunut testi ei todista palvelimen vikaa: toista testi toisesta verkosta.
sudo ss -lunp | grep ':443'
sudo ufw allow 443/udp
sudo tcpdump -ni any udp port 443Onko uusi protokolla nopeampi?
HTTP/3 auttaa eniten yhteyksissä, joilla paketteja katoaa tai verkko vaihtuu, koska kadonnut paketti ei viivästytä muita virtoja. Hyvällä langallisella yhteydellä ero voi olla pieni ja palvelimen CPU-käyttö suurempi. Mittaa oma käyttötapauksesi sen sijaan, että olettaisit saavasi hyötyä, ja pidä HTTP/2 käytettävissä asiakkaille, jotka eivät voi käyttää UDP:tä.
HTTP/3-testi CH-J Server Manager -sovelluksessa
Server Diagnostics sisältää HTTP-asiakkaan, joten testi ei riipu järjestelmän curl-versiosta. Se ilmoittaa HTTP/3:n vahvistetuksi vasta loppuun suoritetun QUIC-siirron jälkeen ja käsittelee Alt-Svc-otsaketta vain ilmoituksena. UDP-aikakatkaisun yhteydessä se kertoo, että palvelimen tuki jää varmistamatta, sillä syy voi olla sinun ja palvelimen välisessä verkossa. Siirtymistä toiseen protokollaan ei lasketa onnistumiseksi.