DNS RobotDNS Propagation Checker
InícioDNSWHOISIP LookupSSL
DNS RobotDNS Propagation Checker

Kit de ferramentas DNS de última geração

Política de PrivacidadeTermos de ServiçoSobre NósBlogContato

Ferramentas DNS

Consulta DNSTeste de Velocidade DNSDomínio para IPConsulta NSConsulta MXVer tudo

Ferramentas de E-mail

Verificador SPFVerificador DMARCVerificador DKIMTeste SMTPAnalisador de Cabeçalho de E-mailVer tudo

Ferramentas de Sites

Consulta WHOISVerificador de HospedagemDisponibilidade de DomínioLocalizador de SubdomíniosDetector de CMSVer tudo

Ferramentas de Rede

Ferramenta PingTracerouteVerificador de PortasVerificador de Cabeçalhos HTTPVerificador de Certificado SSLVer tudo

Ferramentas de IP

Consulta de IPQual é Meu IPVerificador de Lista Negra de IPIP para HostnameConsulta ASNVer tudo

Ferramentas Úteis

Leitor de QR CodeGerador de QR CodeUPI QR Code GeneratorWiFi QR Code GeneratorTradutor de Código MorseVer tudo
© 2026 DNS Robot. Desenvolvido por ❤ Shaik Brothers
Todos os sistemas em operação
Made with
Início/Blog/ERR_HTTP2_PROTOCOL_ERROR: o que é e como resolver

ERR_HTTP2_PROTOCOL_ERROR: o que é e como resolver

Shaik Vahid30 de set. de 20269 min de leitura
Página de erro do Chrome com ERR_HTTP2_PROTOCOL_ERROR ao lado das verificações que corrigem erros de protocolo HTTP/2
Página de erro do Chrome com ERR_HTTP2_PROTOCOL_ERROR ao lado das verificações que corrigem erros de protocolo HTTP/2

Ponto-Chave

O ERR_HTTP2_PROTOCOL_ERROR (erro -337 do Chromium) significa que o servidor, ou algo entre você e ele, enviou uma resposta HTTP/2 que quebra as regras do protocolo, e o Chrome a descartou. Para visitantes, recarregar, abrir uma janela anônima, limpar o cache do site ou pausar a verificação HTTPS do antivírus costuma ajudar, porque uma resposta corrompida ou em cache é um gatilho comum. Para donos de sites, as causas habituais são uma resposta cortada no meio do stream (muitas vezes um proxy com o disco cheio ou sem permissão de escrita na pasta temporária), um Content-Length que não bate com o corpo ou cabeçalhos que o HTTP/2 proíbe. Reproduza o erro com curl --http2 -v.

Advertisement

O que é o ERR_HTTP2_PROTOCOL_ERROR?

O ERR_HTTP2_PROTOCOL_ERROR é um erro do Chrome e do Edge que significa que o navegador recebeu uma resposta HTTP/2 que quebrou as regras do protocolo. No Chromium, é o erro de rede -337: "há um erro de protocolo HTTP/2". O Chrome não tem uma página de erro própria para ele, então você vê a genérica: "Não é possível acessar esse site. A página da Web em … pode estar temporariamente indisponível ou pode ter sido movida permanentemente para um novo endereço da Web", com ERR_HTTP2_PROTOCOL_ERROR embaixo.

O HTTP/2 é a versão mais rápida do HTTP que a maioria dos sites HTTPS usa hoje. Ele é mais rígido que o HTTP/1.1: as respostas são divididas em frames binários, os cabeçalhos seguem regras precisas e o tamanho declarado de uma resposta precisa bater com o que realmente chega. Quando o Chrome vê uma resposta que quebra essas regras, por exemplo uma que para no meio do stream ou que tem um cabeçalho proibido, ele trata a resposta inteira como malformada e a descarta.

Desenvolvedores costumam ver o erro no console do DevTools como net::ERR_HTTP2_PROTOCOL_ERROR 200 (OK). Essa combinação é uma pista forte: o servidor respondeu 200, mas o corpo da resposta nunca chegou inteiro.

Nota

O Firefox e o Safari também falam HTTP/2, mas relatam respostas quebradas de outro jeito, então uma página pode falhar no Chrome e parecer carregar (às vezes pela metade) em outros navegadores. Isso não quer dizer que o Chrome esteja errado: normalmente ele é o mais rigoroso na hora de rejeitar uma resposta malformada.

O que o HTTP/2 considera malformado

O padrão HTTP/2 (RFC 9113) lista os erros que tornam uma resposta malformada, e um stream que recebe reset antes de terminar também falha. Estes são os problemas por trás da maioria dos erros na prática:

RegraO que a quebra
O Content-Length precisa ser igual ao tamanho do corpoUm servidor ou plugin declara um tamanho e envia outro, por exemplo quando a saída é comprimida depois que o tamanho foi definido
A resposta precisa terminar de forma limpaO servidor, o proxy ou o app para de enviar no meio do caminho
Nada de cabeçalhos específicos de conexãoConnection, Keep-Alive, Proxy-Connection, Transfer-Encoding ou Upgrade enviados em uma resposta HTTP/2
Os nomes dos campos precisam estar em minúsculasNomes de cabeçalho com letras maiúsculas repassados direto para o HTTP/2
Valores de cabeçalho válidosQuebras de linha ou outros caracteres proibidos dentro do valor de um cabeçalho
Uma linha :status válidaUm código de status ausente ou ilegível

Advertisement

O que causa o ERR_HTTP2_PROTOCOL_ERROR?

A maioria dos casos vem do lado do servidor, mas algumas coisas no seu próprio computador podem danificar uma resposta no caminho:

  • No servidor: respostas cortadas no meio do stream (um proxy que fica sem espaço em disco ou não consegue gravar os arquivos temporários, um app que trava durante o envio, um tempo limite), valores de Content-Length errados, cabeçalhos proibidos ou inválidos e suporte a HTTP/2 com bugs em configurações antigas de servidor ou de CDN.

  • Do seu lado: antivírus ou firewall que inspeciona o HTTPS e reescreve as respostas, extensões do navegador que modificam requisições ou respostas, uma cópia da página corrompida no cache e, de vez em quando, uma versão desatualizada do Chrome.

Correção 1: recarregue sem cache e teste uma janela anônima

Pressione Ctrl + Shift + R (Mac: Cmd + Shift + R) para recarregar sem o cache. Uma resposta que foi cortada uma vez pode chegar inteira na próxima tentativa.

Depois, abra a página em uma janela anônima (Ctrl + Shift + N, no Mac Cmd + Shift + N). A janela anônima não tem cookies nem o cache do seu perfil normal, e as extensões ficam desativadas por padrão. Se a página carregar ali, a Correção 2 ou a Correção 3 vai resolver o problema na sua janela normal.

Advertisement

Correção 2: limpe o cache e os cookies desse site

Uma cópia corrompida em cache ou um cookie inchado pode disparar o erro repetidamente em um site. Limpe só os dados desse site: clique no ícone à esquerda da barra de endereço → Cookies e dados do site (ou Configurações do site) → exclua os dados e recarregue. Para uma limpeza mais ampla, pressione Ctrl + Shift + Delete e limpe Imagens e arquivos armazenados em cache dos últimos dias.

Correção 3: pause a verificação HTTPS do antivírus e as extensões

Software de segurança que descriptografa e inspeciona o HTTPS fica no meio de toda conexão HTTP/2. Se o tratamento de HTTP/2 dele tem bugs ou está desatualizado, ele pode repassar respostas que o Chrome considera malformadas. Desative só o recurso de verificação HTTPS (que costuma se chamar HTTPS scanning, Web Shield, SSL/TLS protocol filtering ou Scan encrypted connections; nas versões em português, algo como "verificação de HTTPS") e recarregue. Se isso resolver, atualize o antivírus e adicione uma exclusão para o site.

Em seguida, desative todas as extensões em chrome://extensions, recarregue e depois reative uma de cada vez. Bloqueadores de anúncios, ferramentas de privacidade e qualquer coisa que edite cabeçalhos são os suspeitos de sempre.

Aviso

Reative a proteção assim que terminar o teste. Deixar a verificação HTTPS desligada em todos os sites para consertar um único site é uma troca ruim; adicione uma exclusão para ele.

Advertisement

Correção 4: atualize o Chrome e teste outros navegadores

Abra chrome://settings/help para instalar qualquer atualização pendente e reinicie o navegador. Depois, abra a mesma página no Firefox ou no Safari. Se falhar em todos, o site está com defeito e só o dono pode corrigir. Se só o Chrome ou o Edge falham, normalmente o problema ainda é do site, porque o Chrome é o mais rigoroso ao rejeitar HTTP/2 malformado, mas vale repetir as Correções 2 e 3.

Correção 5: teste a página sem HTTP/2

O Chrome pode ser iniciado com o HTTP/2 desligado, o que mostra com certeza se o HTTP/2 é o problema. Feche todas as janelas do Chrome primeiro e depois inicie o navegador por um terminal:

bash
# Windows (Prompt de Comando)
"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-http2

# macOS (Terminal)
open -a "Google Chrome" --args --disable-http2

Dica

Se o site é seu e você precisa de uma solução rápida enquanto investiga, dá para desligar o HTTP/2 temporariamente no servidor (no nginx, remova http2 da linha listen 443 ssl ou defina http2 off;). Os navegadores então voltam para o HTTP/1.1, que é mais tolerante. Trate isso como um passo temporário, não como a correção.

Se a página carregar nessa janela, as respostas HTTP/2 do site estão malformadas e o dono precisa corrigi-las. Depois, feche o Chrome e abra de novo normalmente. A flag vale só para essa inicialização.

Advertisement

Para donos de sites: como corrigir erros de protocolo HTTP/2

Se visitantes em redes e navegadores diferentes relatam o erro, o problema está na sua infraestrutura. Estas três verificações encontram quase todos os casos.

1. Reproduza o erro com o curl

bash
# HTTP/2: observe o fim da saída
curl -sv --http2 https://example.com/broken-page -o /dev/null
# Um stream quebrado termina com algo como:
# HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1)
# (curl 8.19+: HTTP/2 stream 1 reset by server (error 0x1 PROTOCOL_ERROR))

# A mesma URL via HTTP/1.1, para comparar
curl -sv --http1.1 https://example.com/broken-page -o /dev/null

Dica

No DevTools do Chrome (F12) → Rede (Network), uma requisição que falhou pode mostrar quanto foi recebido antes de quebrar. Comparar isso com o tamanho que a resposta declarou no cabeçalho content-length mostra rapidamente se você está lidando com uma resposta cortada.

Se o HTTP/1.1 funciona e o HTTP/2 falha, o erro está confirmado. Compare os cabeçalhos de resposta das duas versões e anote quantos bytes chegam antes de o stream quebrar. O Verificador de Cabeçalhos HTTP também mostra os cabeçalhos que o seu site envia, vistos de fora da sua rede.

2. Procure respostas cortadas no meio do stream

A causa mais comum do lado do servidor é uma resposta que começa (status 200, cabeçalhos enviados) e depois para antes da hora. O nginx guarda as respostas maiores do seu app em arquivos temporários, e se o disco estiver cheio ou o nginx não conseguir gravar na pasta temporária, a resposta termina antes do fim e o navegador relata um erro de protocolo. Verifique:

bash
df -h                                   # algum disco está cheio?
sudo grep -E "No space left|Permission denied" /var/log/nginx/error.log | tail
ls -ld /var/lib/nginx/proxy /var/lib/nginx/fastcgi   # pastas temporárias no Debian/Ubuntu; o dono deve ser o usuário do nginx

Verifique também o próprio app: um processo PHP ou Node que trava, estoura o tempo limite ou atinge um limite de memória enquanto envia uma página grande ou um download produz o mesmo resultado. Os logs do app perto do horário do erro normalmente mostram isso.

3. Corrija o Content-Length e os cabeçalhos proibidos

  • Content-Length: deixe o servidor calcular. Não o defina na mão no código do app se um plugin, um middleware ou o servidor web também comprime ou modifica a saída, porque aí o tamanho declarado não bate mais com os bytes enviados. Um tamanho definido no código PHP enquanto um plugin ou uma configuração do PHP também comprime a saída é uma das formas de isso acontecer em sites WordPress.

  • Cabeçalhos específicos de conexão: remova o código que define Connection, Keep-Alive, Transfer-Encoding ou Upgrade nas respostas. O HTTP/2 os proíbe e, embora o nginx remova a maioria deles por você, alguns servidores de aplicação e proxies não removem.

  • Valores de cabeçalho: garanta que nenhum cabeçalho contenha uma quebra de linha ou um caractere de controle. Isso muitas vezes vem de dados digitados pelo usuário colocados em um cabeçalho, como um nome de arquivo no Content-Disposition.

  • CDN na frente: se você usa a Cloudflare ou outra CDN, teste a origem diretamente (com o --resolve do curl ou uma entrada no arquivo hosts) para saber se o erro vem da origem ou da CDN.

Nota

Atrás de uma CDN, o navegador fala HTTP/2 com a CDN, e a CDN pode falar HTTP/1.1 com a sua origem. Uma origem que envia um Content-Length errado ou fecha a conexão antes da hora continua aparecendo para o navegador como um erro de HTTP/2, porque a CDN só consegue repassar o que recebeu.

ERR_HTTP2_PROTOCOL_ERROR vs. erros parecidos

ErroCódigoO que aconteceu
ERR_HTTP2_PROTOCOL_ERROR-337Uma resposta HTTP/2 quebrou as regras do protocolo
ERR_QUIC_PROTOCOL_ERROR-356O mesmo tipo de falha via HTTP/3 (QUIC)
ERR_SSL_PROTOCOL_ERROR-107O handshake HTTPS (TLS) falhou antes de o HTTP/2 começar
ERR_CONNECTION_CLOSED-100A conexão foi fechada antes de uma página chegar
ERR_EMPTY_RESPONSE-324O servidor não enviou nada

Guias detalhados: ERR_QUIC_PROTOCOL_ERROR, ERR_SSL_PROTOCOL_ERROR, ERR_CONNECTION_CLOSED e ERR_EMPTY_RESPONSE. Para verificar o certificado e a configuração HTTPS de um site de fora, use o Verificador de SSL.

Veja os cabeçalhos que o seu site realmente envia

O Verificador de Cabeçalhos HTTP do DNS Robot busca qualquer URL a partir dos nossos servidores e lista o código de status e todos os cabeçalhos de resposta, o que facilita encontrar cabeçalhos proibidos ou malformados.

Testar Verificador de Cabeçalhos HTTP

Advertisement

Perguntas Frequentes

Significa que o Chrome recebeu uma resposta HTTP/2 que quebrou as regras do protocolo, por exemplo uma que terminou antes da hora, declarou o tamanho errado ou continha cabeçalhos proibidos, e por isso descartou a resposta. No Chromium, é o erro de rede -337.

Ferramentas Relacionadas

HTTP Headers CheckSSL Certificate CheckPort Checker

Artigos Relacionados

ERR_QUIC_PROTOCOL_ERROR: O Que Significa e Como CorrigirERR_SSL_PROTOCOL_ERROR: Como Corrigir (Chrome, Edge, Todos os Navegadores)ERR_CONNECTION_CLOSED: o que é e como resolver

Índice

  • O que é o ERR_HTTP2_PROTOCOL_ERROR?
  • O que o HTTP/2 considera malformado
  • O que causa o ERR_HTTP2_PROTOCOL_ERROR?
  • Correção 1: recarregue sem cache e teste uma janela anônima
  • Correção 2: limpe o cache e os cookies desse site
  • Correção 3: pause a verificação HTTPS do antivírus e as extensões
  • Correção 4: atualize o Chrome e teste outros navegadores
  • Correção 5: teste a página sem HTTP/2
  • Para donos de sites: como corrigir erros de protocolo HTTP/2
  • 1. Reproduza o erro com o curl
  • 2. Procure respostas cortadas no meio do stream
  • 3. Corrija o Content-Length e os cabeçalhos proibidos
  • ERR_HTTP2_PROTOCOL_ERROR vs. erros parecidos
  • Perguntas Frequentes