15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
23.10.2024
2 +1

Como Corrigir o Erro ERR_SPDY_PROTOCOL_ERROR no Chrome

ERR_SPDY_PROTOCOL_ERROR é um erro de rede do Chrome que ocorre quando o navegador falha ao estabelecer ou manter uma sessão SPDY ou HTTP/2 válida com um servidor web. Manifesta-se como um carregamento de página falhado, normalmente acompanhado pelo ecrã de erro padrão do Chrome, e pode ser desencadeado por ligações de socket obsoletas, dados de cache corrompidos, incompatibilidades TLS/SSL, extensões interferentes ou negociação de protocolo mal configurada no lado do servidor.

O nome do erro faz referência ao SPDY — o protocolo de transporte multiplexado da Google, agora descontinuado, que precedeu o HTTP/2. Embora o Chrome tenha abandonado o suporte nativo ao SPDY após a versão 51, a camada interna de gestão de sockets e sessões ainda utiliza terminologia derivada do SPDY, razão pela qual o código de erro persiste mesmo em ligações modernas HTTP/2 e HTTP/3. Compreender esta distinção é essencial para diagnosticar a causa raiz com precisão.

O Que Causa Realmente o ERR_SPDY_PROTOCOL_ERROR

Antes de aplicar correções às cegas, é útil conhecer os modos de falha precisos por trás deste erro:

  • Sessões de socket SPDY/HTTP2 obsoletas em cache no pool de ligações do Chrome que já não correspondem ao estado TLS atual do servidor
  • Certificados SSL/TLS expirados ou reemitidos no lado do servidor que invalidam uma sessão existente sem uma reposição limpa do handshake
  • Incompatibilidades ALPN (Application-Layer Protocol Negotiation) em que o servidor anuncia suporte HTTP/2 mas o handshake TLS falha a meio da sessão
  • Dados de perfil do navegador corrompidos, incluindo cache, cookies ou o ficheiro de estado de rede
  • Proxy, VPN ou software de segurança que realiza inspeção TLS e quebra a camada de enquadramento HTTP/2
  • Versões desatualizadas do Chrome com erros conhecidos na implementação HTTP/2 ou QUIC
  • Má configuração no lado do servidor — por exemplo, uma instância Nginx ou Apache com um módulo h2 com falhas, ou um certificado expirado num nó de extremidade CDN

Correção 1: Limpar Sockets SPDY Diretamente

Esta é a correção mais direcionada e deve ser a sua primeira ação. O Chrome mantém um pool persistente de sessões de socket SPDY/HTTP2. Se uma sessão ficar corrompida — por exemplo, após o reinício de um servidor ou a reemissão de um certificado — o Chrome continuará a reutilizar a sessão com falhas até que seja explicitamente limpa.

  1. Abra um novo separador do Chrome.
  2. Navegue para chrome://net-internals/#sockets
  3. Clique em Flush socket pools.
  4. Em seguida, navegue para chrome://net-internals/#dns
  5. Clique em Clear host cache.
  6. Feche o separador e recarregue a página com falha.

Esta limpeza em dois passos elimina simultaneamente o pool de sessões da camada de transporte e a cache de resolução DNS, o que resolve as duas causas mais comuns no navegador numa única operação.

Por que o URL antigo já não funciona: Muitos guias ainda fazem referência a chrome://net-internals/#events&q=type:SPDY_SESSION%20is:active. O Chrome removeu o separador Events nas versões mais recentes. Utilize #sockets e #dns diretamente.

Correção 2: Limpar Cache e Cookies do Navegador

Respostas HTTP em cache, cookies armazenados e estado HSTS (HTTP Strict Transport Security) obsoleto podem entrar em conflito com a configuração TLS ou de protocolo atual de um servidor.

  1. Abra o Chrome e prima Ctrl+Shift+Delete (Windows/Linux) ou Cmd+Shift+Delete (macOS).
  2. Defina o Intervalo de tempo para Todo o período.
  3. Marque Cookies e outros dados de sites e Imagens e ficheiros em cache.
  4. Clique em Limpar dados.

Para uma abordagem mais cirúrgica — se pretender limpar dados apenas de um domínio específico sem apagar todo o estado do navegador — utilize o seguinte:

  1. Navegue para chrome://settings/siteData
  2. Pesquise o domínio afetado.
  3. Elimine apenas os cookies e o armazenamento desse site.

Adicionalmente, limpe o estado HSTS do domínio em chrome://net-internals/#hsts introduzindo o nome do host em Delete domain security policies. Uma entrada HSTS obsoleta pode forçar o Chrome a seguir um caminho de atualização que entra em conflito com um servidor que alterou a sua configuração TLS.

Correção 3: Atualizar o Google Chrome

As implementações HTTP/2 e QUIC do Chrome recebem patches frequentes. Utilizar uma versão desatualizada pode significar que está a carregar erros conhecidos de tratamento de protocolo que já foram corrigidos.

  1. Clique no menu de três pontos e aceda a Ajuda > Acerca do Google Chrome.
  2. O Chrome verificará e transferirá atualizações automaticamente.
  3. Clique em Reiniciar para aplicar a atualização.

Para verificar a sua versão atual a partir da barra de endereço, navegue para chrome://version/. Compare o número de compilação com o blogue Chrome Releases para confirmar que está no canal estável mais recente.

Correção 4: Desativar VPN, Proxy e Ferramentas de Inspeção TLS

VPNs, proxies corporativos e produtos antivírus que realizam inspeção profunda SSL/TLS (também denominada interceção HTTPS) são uma causa frequente e subdiagnosticada do ERR_SPDY_PROTOCOL_ERROR. Estas ferramentas terminam a ligação TLS no cliente, reencriptam-na com o seu próprio certificado e reencaminham-na para o servidor. Se a implementação HTTP/2 da ferramenta for incompleta ou a sua cadeia de certificados não for de confiança, o Chrome rejeitará a sessão.

Para desativar as definições de proxy no Windows:

  1. Prima Win+I para abrir as Definições.
  2. Aceda a Rede e Internet > Proxy.
  3. Defina Detetar definições automaticamente como Ativado e Utilizar um servidor proxy como Desativado.

Para desativar as definições de proxy através da Linha de Comandos:

netsh winhttp reset proxy

Para verificar se um proxy está atualmente ativo:

netsh winhttp show proxy

Se estiver numa rede corporativa, consulte o seu administrador de TI antes de desativar as definições de proxy, pois fazê-lo pode violar a política de rede. Em vez disso, pergunte se a ferramenta de inspeção SSL suporta o modo de passagem HTTP/2.

Correção 5: Repor a Pilha TCP/IP e Limpar a Cache DNS

Entradas corrompidas na pilha TCP/IP ou uma cache DNS comprometida podem causar falhas de ligação que se manifestam como erros de protocolo. Esta correção opera na camada de rede do sistema operativo, abaixo do próprio Chrome.

Abra a Linha de Comandos como Administrador (prima Win+R, escreva cmd, depois prima Ctrl+Shift+Enter) e execute os seguintes comandos em sequência:

netsh int ip reset
netsh winsock reset
ipconfig /flushdns
ipconfig /release
ipconfig /renew

Reinicie o computador após executar estes comandos. O comando netsh winsock reset é particularmente importante — um catálogo Winsock corrompido pode causar erros de protocolo intermitentes e aparentemente aleatórios que são difíceis de rastrear até à sua origem.

No macOS, o comando equivalente para limpar o DNS é:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Correção 6: Desativar ou Isolar Extensões do Navegador

Extensões que intercetam pedidos de rede — bloqueadores de anúncios, ferramentas de privacidade, extensões antivírus, extensões VPN e comutadores de proxy personalizados — podem corromper frames HTTP/2 ou injetar cabeçalhos que violam a especificação HTTP/2, desencadeando um erro de protocolo.

Método de isolamento sistemático:

  1. Abra chrome://extensions/
  2. Desative todas as extensões simultaneamente.
  3. Recarregue a página com falha.
  4. Se o erro desaparecer, reative as extensões uma a uma, recarregando a página após cada uma, até identificar a responsável.

Em alternativa, abra o Chrome em modo de Navegação Anónima (Ctrl+Shift+N), que desativa todas as extensões por predefinição (a menos que as tenha explicitamente permitido em modo Anónimo). Se a página carregar corretamente em modo Anónimo, uma extensão é definitivamente a causa.

Correção 7: Reiniciar o Router ou Modem

As tabelas NAT (Network Address Translation) e a inspeção de pacotes com estado em routers domésticos podem manter entradas de sessão TCP obsoletas que impedem novas ligações HTTP/2 de completar o handshake. Um ciclo de energia completo — não apenas um reinício por software — limpa estas tabelas.

  1. Desligue completamente o router e o modem.
  2. Aguarde 60 segundos (não 30 — os condensadores precisam de tempo para descarregar completamente e limpar o estado volátil).
  3. Ligue primeiro o modem, aguarde que sincronize completamente e depois ligue o router.
  4. Aguarde uma ligação completa antes de testar.

Correção 8: Desativar Temporariamente o Antivírus ou Firewall

O software de segurança com funcionalidades de análise HTTPS ou proteção web funciona de forma semelhante a um proxy de inspeção TLS corporativo. Interceta o handshake TLS, o que pode quebrar a negociação de sessão HTTP/2 se o motor do software de segurança não suportar totalmente a extensão ALPN ou o enquadramento HTTP/2.

Os produtos mais conhecidos por causar este problema incluem o Avast, AVG, Kaspersky e ESET quando os seus módulos de proteção web estão ativos.

  • Desative temporariamente a funcionalidade Web Shield ou Análise HTTPS especificamente (não o antivírus completo).
  • Teste o URL com falha.
  • Se o erro for resolvido, procure uma opção para adicionar o site afetado a uma lista de exclusão de análise HTTPS em vez de desativar a proteção globalmente.

Correção 9: Criar um Novo Perfil do Chrome

Um perfil de utilizador do Chrome corrompido — especificamente a subpasta Network dentro do diretório do perfil — pode causar ERR_SPDY_PROTOCOL_ERROR persistentes que sobrevivem a limpezas de cache e de sockets. O ficheiro de estado de rede do perfil armazena dados HSTS, registos de transparência de certificados e resultados de negociação de protocolo em cache.

Para testar com um perfil novo:

  1. Navegue para chrome://settings/
  2. Desloque-se até Pessoas e clique em Adicionar pessoa (ou Adicionar perfil).
  3. Crie um perfil de teste mínimo.
  4. Abra o URL com falha no novo perfil.

Se o URL carregar corretamente no novo perfil, o problema está isolado no estado de rede armazenado do seu perfil original. Pode eliminar manualmente a pasta Network do diretório do seu perfil sem perder marcadores ou palavras-passe:

  • Windows: %LOCALAPPDATA%GoogleChromeUser DataDefaultNetwork
  • macOS: ~/Library/Application Support/Google/Chrome/Default/Network
  • Linux: ~/.config/google-chrome/Default/Network

Elimine a pasta Network com o Chrome fechado e depois reinicie-o.

Correção 10: Diagnosticar e Escalar Problemas no Lado do Servidor

Se todas as correções do lado do cliente falharem, o erro tem origem no servidor. As causas comuns do lado do servidor incluem:

  • Certificado SSL/TLS expirado ou recentemente reemitido sem reinício do servidor para carregar o novo certificado
  • Configuração HTTP/2 com falhas no Nginx (diretiva http2 mal configurada) ou Apache (mod_http2 carregado mas Protocols h2 http/1.1 não definido corretamente)
  • Má configuração de CDN ou proxy reverso em que o nó de extremidade e o servidor de origem têm definições de protocolo conflituantes
  • Incompatibilidade de versão TLS — por exemplo, um servidor configurado para usar apenas TLS 1.3 enquanto um proxy intermediário suporta apenas TLS 1.2

Exemplo de configuração correta HTTP/2 no Nginx:

server {
    listen 443 ssl;
    http2 on;
    ssl_certificate     /etc/ssl/certs/your_domain.crt;
    ssl_certificate_key /etc/ssl/private/your_domain.key;
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         HIGH:!aNULL:!MD5;
}

Nota: No Nginx 1.25.1+, http2 on substitui a sintaxe mais antiga listen 443 ssl http2. Utilizar a sintaxe descontinuada em versões mais recentes pode causar falhas na negociação ALPN.

Exemplo de configuração correta HTTP/2 no Apache:

Protocols h2 http/1.1
SSLEngine on
SSLCertificateFile    /etc/ssl/certs/your_domain.crt
SSLCertificateKeyFile /etc/ssl/private/your_domain.key

Se gerir a sua própria infraestrutura de servidor, garantir que os seus Certificados SSL são válidos, corretamente encadeados e renovados antes de expirar elimina o gatilho mais comum do lado do servidor para este erro. Os ambientes de alojamento que funcionam em Alojamento VPS devidamente mantido dão-lhe acesso direto aos ficheiros de configuração do servidor, tornando simples aplicar estas correções sem ter de aguardar por um fornecedor de alojamento partilhado.

Para equipas que executam aplicações web em Servidores Dedicados, verificar que mod_http2 ou o módulo HTTP/2 do Nginx está corretamente compilado e ativado deve fazer parte de qualquer lista de verificação pós-implementação.

Ferramentas de Diagnóstico para Identificar a Causa Raiz Mais Rapidamente

Antes de percorrer todas as correções sequencialmente, utilize estas ferramentas para identificar a origem:

FerramentaO Que DiagnosticaComo Aceder
chrome://net-internals/#socketsSessões de socket ativas e em poolBarra de endereço do Chrome
chrome://net-internals/#dnsEntradas de cache DNSBarra de endereço do Chrome
chrome://net-internals/#hstsPolíticas HSTS armazenadas por domínioBarra de endereço do Chrome
chrome://net-export/Exportação de registo de rede completo para análise aprofundadaBarra de endereço do Chrome
SSL Labs Server TestConfiguração TLS/certificado do servidorssllabs.com/ssltest
WiresharkInspeção do handshake TLS ao nível de pacoteswireshark.org
curl -v --http2 https://example.comNegociação HTTP/2 a partir da linha de comandosTerminal

O comando curl é particularmente útil para confirmar se o problema é específico do navegador ou abrange todo o servidor:

curl -v --http2 https://your-domain.com 2>&1 | grep -E "ALPN|HTTP|SSL|error"

Se curl também falhar na negociação HTTP/2, o problema é definitivamente do lado do servidor. Se curl tiver êxito mas o Chrome falhar, o problema está no estado de sessão do navegador ou numa ferramenta de interceção local.

ERR_SPDY_PROTOCOL_ERROR vs. Erros de Rede Relacionados do Chrome

Código de ErroCausa PrincipalPrimeira Correção a Tentar
ERR_SPDY_PROTOCOL_ERRORSessão HTTP/2 obsoleta ou incompatibilidade ALPNLimpar pools de sockets
ERR_HTTP2_PROTOCOL_ERRORViolação de enquadramento HTTP/2 pelo servidor ou proxyVerificar configuração HTTP/2 do servidor
ERR_SSL_PROTOCOL_ERRORFalha no handshake TLSVerificar validade do certificado
ERR_CONNECTION_RESETLigação TCP interrompida a meio da sessãoReiniciar router, repor TCP/IP
ERR_CERT_AUTHORITY_INVALIDCertificado não confiável ou autoassinadoVerificar cadeia de certificados
ERR_QUIC_PROTOCOL_ERRORFalha de sessão QUIC/HTTP3Desativar QUIC nas flags do Chrome

Para sites onde o QUIC está a causar instabilidade, pode desativá-lo em chrome://flags/#enable-quic definindo a flag como Disabled. Isto força o Chrome a recuar para HTTP/2 ou HTTP/1.1 baseado em TCP.

Matriz de Decisão Técnica: Qual Correção Aplicar Primeiro

Utilize esta matriz para priorizar a resolução de problemas com base no contexto em que o erro aparece:

CenárioCausa Mais ProvávelPrimeira Ação Recomendada
Erro apenas num site específicoSessão de socket obsoleta ou problema do lado do servidorLimpar pools de sockets e depois testar com curl
Erro em vários sites simultaneamenteRede local ou corrupção do perfil do navegadorRepor TCP/IP, limpar DNS, reiniciar router
Erro apenas no Chrome, não noutros navegadoresConflito de perfil do Chrome ou extensãoTestar em modo Anónimo e depois com novo perfil
Erro iniciado após atualização do antivírusInspeção TLS a quebrar HTTP/2Desativar análise HTTPS no antivírus
Erro na rede corporativa/escritórioProxy ou appliance de inspeção SSLConsultar TI; solicitar passagem HTTP/2
Erro após renovação do certificado do servidorServidor não recarregado após alteração do certificadoRecarregar processo do servidor (nginx -s reload)
Erro em VPS ou servidor autogeridoMá configuração do módulo HTTP/2Auditar diretivas HTTP/2 do Nginx/Apache

Se estiver a gerir o seu próprio servidor web e precisar de um painel de controlo para simplificar a gestão de SSL e protocolos, os Painéis de Controlo VPS fornecem interfaces gráficas para instalação de certificados e configuração de servidores web que reduzem o risco de má configuração manual. Para projetos menores em Alojamento Web Partilhado, as definições de protocolo são geridas ao nível da infraestrutura — contacte o suporte se suspeitar de uma má configuração HTTP/2 do lado do servidor.

Lista de Verificação de Ações Antes de Escalar

Percorra esta lista de verificação por ordem. Pare no passo que resolver o erro.

  • [ ] Limpar pools de sockets em chrome://net-internals/#sockets
  • [ ] Limpar cache de host DNS em chrome://net-internals/#dns
  • [ ] Eliminar política HSTS do domínio em chrome://net-internals/#hsts
  • [ ] Limpar toda a cache e cookies do navegador (Todo o período)
  • [ ] Testar em modo Anónimo para excluir extensões
  • [ ] Testar noutro navegador (Firefox, Edge) para excluir problemas específicos do Chrome
  • [ ] Desativar temporariamente a análise HTTPS do antivírus
  • [ ] Desativar VPN ou proxy
  • [ ] Executar netsh winsock reset e ipconfig /flushdns como Administrador
  • [ ] Ciclo de energia do router e modem (descarga completa de 60 segundos)
  • [ ] Criar um novo perfil do Chrome e eliminar a pasta Network do perfil antigo
  • [ ] Executar curl -v --http2 https://your-domain.com para determinar se o problema é do lado do servidor
  • [ ] Se for do lado do servidor: auditar validade do certificado SSL, configuração do módulo HTTP/2 e recarregar o processo do servidor
  • [ ] Atualizar o Chrome para a versão estável mais recente

FAQ

O que é o ERR_SPDY_PROTOCOL_ERROR e por que ainda aparece se o SPDY está descontinuado?

A pilha de rede interna do Chrome herdou códigos de erro da era SPDY que nunca foram renomeados. O erro agora surge para qualquer falha na camada de sessão HTTP/2 ou QUIC — incluindo falhas de negociação ALPN, handshakes TLS com falhas e entradas de pool de ligações obsoletas — mesmo que o próprio SPDY não seja utilizado desde o Chrome 51.

Por que o erro aparece apenas num site e não noutros?

Isto indica quase sempre uma sessão de socket do Chrome obsoleta específica desse domínio, ou um problema do lado do servidor nesse host em particular — como um certificado recentemente reemitido que invalidou sessões existentes, ou uma configuração HTTP/2 com falhas nesse servidor. Limpar os pools de sockets e testar com curl --http2 confirmará qual é o caso.

O software antivírus pode realmente causar ERR_SPDY_PROTOCOL_ERROR?

Sim. Os produtos de segurança que realizam inspeção HTTPS (Avast, AVG, Kaspersky, ESET e outros) atuam como um proxy TLS man-in-the-middle. Se a sua implementação HTTP/2 for incompleta ou o seu certificado injetado não for de confiança pelo repositório de certificados do Chrome, a sessão HTTP/2 falhará com exatamente este erro. Desativar apenas o componente de análise HTTPS — não o antivírus completo — é a correção direcionada correta.

Como sei se o problema está do meu lado ou do lado do servidor?

Execute curl -v --http2 https://your-domain.com a partir da linha de comandos. Se o curl também falhar na negociação HTTP/2, o servidor está mal configurado. Se o curl tiver êxito mas o Chrome falhar, o problema é local — seja uma sessão do Chrome obsoleta, uma extensão ou uma ferramenta de segurança de interceção.

Este erro afeta o SEO ou o desempenho do site?

Para os utilizadores finais, sim — o erro impede completamente o carregamento da página. Para os proprietários de sites, um ERR_SPDY_PROTOCOL_ERROR persistente causado por uma má configuração HTTP/2 do lado do servidor ou um certificado expirado resultará em tentativas de rastreamento do Googlebot falhadas, o que pode impactar negativamente a cobertura de rastreamento e a indexação. Garantir que o seu certificado SSL é válido e que a sua configuração HTTP/2 está correta é um requisito básico de SEO técnico.

15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar