CH-J Server Managergerenciamento de servidor sobre SSH
E-mail
Todos os guias e artigos →

Como verificar se HTTP/3 e QUIC funcionam realmente

Porque é que um cabeçalho Alt-Svc não é prova, o que verificar no NGINX e na firewall e como confirmar uma transferência QUIC real.

Anunciar não é o mesmo que funcionar

Um servidor anuncia HTTP/3 no cabeçalho de resposta Alt-Svc, que o cliente recebe através de HTTP/1.1 ou HTTP/2. O cabeçalho é apenas uma promessa. HTTP/3 funciona sobre QUIC através de UDP, pelo que a página pode carregar normalmente com UDP completamente bloqueado, enquanto o navegador continua em HTTP/2 sem avisar.

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

Confirme uma transferência real

Só um pedido concluído através de QUIC confirma HTTP/3. Use curl compilado com suporte para HTTP/3; muitos pacotes do sistema não o têm e, nesse caso, a opção é rejeitada, o que nada diz sobre o servidor. No navegador, abra as ferramentas de programador e consulte a coluna Protocol, que mostra h3 para um pedido deste tipo. O navegador pode usar HTTP/2 na primeira visita, por isso carregue a página novamente.

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

Verifique a configuração do NGINX

O NGINX precisa de um listener QUIC além do listener TCP, e tanto a versão como a compilação têm de o suportar. É necessário TLS 1.3, porque QUIC o usa diretamente. Verifique a configuração antes de a recarregar. O valor ma em Alt-Svc é o tempo em segundos durante o qual os clientes se lembram da promessa, por isso use um valor curto durante os testes.

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

Abra UDP 443 em todo o percurso

A causa mais frequente de falha é uma firewall que permite TCP 443 mas não UDP 443. Verifique o servidor e todos os filtros externos. É possível confirmar no servidor que o socket está à escuta. Algumas redes empresariais e públicas bloqueiam QUIC deliberadamente, pelo que um teste falhado a partir de uma rede não prova que a falha esteja no servidor: repita-o a partir de outra rede.

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

O novo protocolo é mais rápido?

HTTP/3 ajuda sobretudo em ligações com perda de pacotes ou mudanças de rede, porque um pacote perdido não atrasa os outros fluxos. Numa boa ligação por cabo, a diferença pode ser pequena e a utilização de CPU no servidor pode ser maior. Meça o seu caso em vez de presumir um ganho e mantenha HTTP/2 disponível para clientes que não possam usar UDP.

O teste HTTP/3 no CH-J Server Manager

Server Diagnostics inclui um cliente HTTP, pelo que o teste não depende do curl do sistema. Só apresenta HTTP/3 como confirmado após uma transferência QUIC concluída e trata Alt-Svc apenas como um anúncio. Se houver um timeout de UDP, indica que o suporte do servidor continua por verificar, porque a causa pode estar na rede entre si e o servidor, e não considera um sucesso o recurso a outro protocolo.

Documentação detalhada

RFC 9114: HTTP/3 →

NGINX: QUIC and HTTP/3 →

Desbloqueio biométrico e segurança →