CH-J Server Managergestione server su SSH
Menu
Tutte le guide e gli articoli →

Come verificare che HTTP/3 e QUIC funzionino davvero

Perché un’intestazione Alt-Svc non è una prova, cosa controllare in NGINX e nel firewall e come confermare un vero trasferimento QUIC.

Essere annunciato non significa funzionare

Un server annuncia HTTP/3 nell’intestazione di risposta Alt-Svc, che il client riceve tramite HTTP/1.1 o HTTP/2. L’intestazione è solo una promessa. HTTP/3 usa QUIC su UDP, quindi la pagina può caricarsi normalmente anche con UDP completamente bloccato, mentre il browser resta su HTTP/2 senza segnalarlo.

curl -sI https://server.example/ | grep -i alt-svc

Conferma un trasferimento reale

Solo una richiesta completata tramite QUIC conferma HTTP/3. Usa una versione di curl compilata con il supporto HTTP/3; molti pacchetti di sistema ne sono privi e quindi rifiutano l’opzione, il che non dice nulla sul server. Nel browser apri gli strumenti per sviluppatori e leggi la colonna Protocol, che per una richiesta di questo tipo mostra h3. Alla prima visita il browser potrebbe usare HTTP/2, quindi ricarica la pagina.

curl -V | grep -i http3
curl -sS --http3-only -o /dev/null -w '%{http_version}\n' https://server.example/

Controlla la configurazione di NGINX

NGINX necessita di un listener QUIC accanto a quello TCP e sia la versione sia la compilazione devono supportarlo. È richiesto TLS 1.3, perché QUIC lo usa direttamente. Verifica la configurazione prima di ricaricarla. Il valore ma in Alt-Svc è il tempo in secondi per cui i client ricordano la promessa: durante i test usa quindi un valore breve.

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

Apri UDP 443 lungo tutto il percorso

La causa più frequente dei problemi è un firewall che consente TCP 443 ma non UDP 443. Controlla il server e ogni filtro esterno. Puoi verificare sul server che il socket sia in ascolto. Alcune reti aziendali e pubbliche bloccano QUIC deliberatamente, quindi un test fallito da una sola rete non dimostra un problema del server: ripetilo da un’altra rete.

sudo ss -lunp | grep ':443'
sudo ufw allow 443/udp
sudo tcpdump -ni any udp port 443

Il nuovo protocollo è più veloce?

HTTP/3 aiuta soprattutto sulle connessioni con perdita di pacchetti o quando si cambia rete, perché un pacchetto perso non blocca gli altri flussi. Su una buona connessione cablata la differenza può essere minima e l’uso della CPU sul server può aumentare. Misura il tuo caso anziché dare per scontato un miglioramento e mantieni disponibile HTTP/2 per i client che non possono usare UDP.

Il test HTTP/3 in CH-J Server Manager

Server Diagnostics include un client HTTP, quindi il test non dipende dal curl di sistema. Segnala HTTP/3 come confermato solo dopo un trasferimento QUIC completato e considera Alt-Svc solo un annuncio. In caso di timeout UDP indica che il supporto del server resta da verificare, perché la causa potrebbe essere la rete tra te e il server, e non considera un successo il ripiego su un altro protocollo.

Documentazione dettagliata

RFC 9114: HTTP/3 →

NGINX: QUIC and HTTP/3 →

Sblocco biometrico e sicurezza →