Códigos de status HTTP: significados e soluções de erros

Apareceu um erro em seu site? Não entre em pânico! Saiba mais sobre os códigos de status HTTP e encontre a solução para os erros mais comuns.

Por Fabio Lobo, atualizado em 16/01/2021.

Quem nunca viu uma página de erro 404, o mais famoso código de status HTTP? Códigos do tipo informam não só que algo deu errado, mas por que o erro ocorreu e quem pode ser o responsável.

Mas nem todo código de estado HTTP representa um erro ou problema. Alguns são apenas mensagens informativas trocadas entre servidor e navegador, indicando que alguma requisição foi concluída ou que a página mudou de endereço, por exemplo.

Escrevi esse post – que é bem básico, quase nada técnico – pra falar um pouco sobre cada uma dessas mensagens, apresentando soluções para os principais problemas.

Vamos lá?!

ilustração de pessoa com dúvida olhando para a tela do computador; à frente o texto Códigos De Status HTTP

O que são status HTTP?

Conforme comentei acima, os códigos de resposta em HTTP (HyperText Transfer Protocol) fazem parte da comunicação entre o servidor e o navegador.

Explicando de maneira básica, quando você abre a janela do seu browser e acessa um site, seu navegador irá tentar uma conexão com o servidor desse site para, então, poder exibir o conteúdo para você.

Os status HTTP entram em cena justamente nessa tentativa de conexão. Eles são respostas à requisição do navegador, podendo informar, por exemplo, que a página que você quer acessar não existe (404) ou que deu tudo certo e a página pode ser exibida (200).

O primeiro dígito do código de status HTTP indica a classe de erro que a resposta está categorizada.

Os códigos iniciados com 1, 2 e 3 não aparecem para o usuário no momento em que ele acessa o site. Ou seja, ao acessar um site, você não verá a mensagem de status 200 quando der tudo certo.

Por outro lado, os status HTTP iniciados com 4 e 5, que representam erros, aparecem na página.

Quer conhecer essas mensagens?

Lista de códigos, erros e status HTTP

Fiz uma seleção com (quase) todas as mensagens de status HTTP por aqui.

Sim, quase todas. Afinal, alguns códigos ainda são experimentais, ou específicos de algum sistema, ou até mesmo uma piada.

Entretanto, se você quer mais detalhes, confira este link. É um site bem completo com todas as informações sobre status HTTP.

Mas se você quer um resumão, está na página certa!

1xx – Resposta informativa

Os status 1xx são meramente mensagens informativas.

Não aparecem no navegador, ou seja: servem apenas para comunicação entre servidor e cliente.

  • 100 – Continue: é uma resposta provisória que indica que o navegador pode continuar com a requisição.
  • 101 – Switching Protocol: a mensagem indica que o servidor recebeu o pedido do cliente para alteração do protocolo.
  • 102 – Processing: significa que o servidor recebeu a requisição e está processando-a.

2xx – Resposta de sucesso

Os códigos 2xx indicam que a ação solicitada pelo navegador foi recebida, compreendida, aceita e processada.

Também são códigos que servem apenas para comunicação entre servidor e navegador.

  • 200 – OK: significa que a requisição foi bem sucedida.
  • 201 – Created: o pedido do navegador foi concluído e um novo recurso foi criado.
  • 202 – Accepted: significa que o pedido foi aceito para ser processado.
  • 203 – Non-authoritative Information: esse código indica que a solicitação foi processada, mas as informações aparentemente vieram de outra fonte.
  • 204 – No Content: apesar de a solicitação ter sido processada, não há o que responder para o cliente.
  • 205 – Reset Content: indica que o servidor concluiu a solicitação, mas o user agent precisa redefinir a visualização do documento que fez tal solicitação.
  • 206 – Partial Content: significa que o servidor está entregando apenas parte do recurso solicitado de acordo com um cabeçalho de intervalo enviado pelo cliente.
  • 207 – Multi-Status: diz que vários códigos de status podem ser adequados para a requisição.

3xx – Redirecionamento

Se você trabalha com SEO, certamente conhece os códigos de redirecionamento 301 e 302. Há outras opções, mas dificilmente você precisará delas.

Assim como ocorre com os códigos acima, esses também não aparecem no navegador para o usuário.

  • 300 – Multiple Choice: o código indica que há mais de uma resposta possível, ficando a critério do user agent ou do próprio usuário fazer a escolha.
  • 301 – Moved Permanently: significa que a requisição deve ser redirecionada para outra URI.
  • 302 – Found: nesse caso, a URI foi redirecionada temporariamente.
  • 303 – See Other: o cliente deve buscar o recurso solicitado em outra URI através de uma requisição GET.
  • 304 – Not Modified: informa ao cliente que o recurso não foi modificado desde a última requisição, então o navegador pode utilizar a mesma versão em cache.
  • 307 – Temporary Redirect: parecida com a resposta 302, mas nesse caso o navegador basicamente não pode armazenar o redirecionamento da URI em cache, tendo que acessar a URI original em todas as requisições.
  • 308 – Permanent Redirect: é semelhante à resposta 301, mas assim como ocorre com o código 307, o navegador não armazena o redirecionamento em cache.

4xx – Erros do cliente

Essa classe de erros indica que o navegador (ou o usuário) fez alguma coisa errada, como por exemplo acessar uma página que não existe (erro 404).

Entretanto, “erro do cliente” é um termo genérico. Afinal, os status 4xx podem surgir devido a problemas no site (como apagar uma página sem criar um redirecionamento, o que gera o erro 404 ou 410) e até mesmo imprevistos como lentidão no servidor ou na própria conexão do usuário (causando erros como 408, 429 e 499).

  • 400 – Bad Request: informa que a requisição está com uma sintaxe inválida, portanto o servidor não a entendeu.
  • 401 – Unauthorized: o servidor avisa ao cliente que o usuário deve estar autenticado para visualizar a página.
  • 403 – Forbidden: significa que o servidor não autoriza, em hipótese alguma, que o navegador faça a requisição.
  • 404 – Not Found: o mais famoso dos erros http indica que o servidor não encontrou o recurso solicitado.
  • 405 – Method Not Allowed: o método de pedido não é compatível com o recurso solicitado.
  • 407 – Proxy Authentication Required: significa que a autenticação deve ser feita por um proxy.
  • 408 – Request Timeout: a mensagem indica que o cliente não fez uma requisição dentro do tempo que o servidor estava preparado para esperar.
  • 409 – Conflict: a solicitação não foi processada por conta de um conflito no pedido.
  • 410 – Gone: o código informa que a página requisitada foi removida permanentemente do servidor.
  • 413 – Payload Too Large: significa que solicitação é maior do que o servidor pode processar.
  • 414 – URI Too Long: o URI informado é muito longo para ser processado pelo servidor.
  • 415 – Unsupported Media Type: o código informa que o formato de mídia requisitado não é suportado pelo servidor.
  • 429 – Too Many Requests: o código diz que o usuário enviou muitas requisições dentro de um determinado período de tempo.
Status do Nginx

Alguns códigos são exclusivos de servidores Nginx:

  • 444 – Connection Closed Without Response: derruba a conexão sem enviar uma resposta ao cliente.
  • 499 – Client Closed Request: acontece quando o cliente encerra a conexão enquanto o servidor processa a requisição.
Outros status

Por fim, alguns códigos 4xx menos recorrentes:

  • 411 – Length Required: o campo Content-Length do cabeçalho não está definido, então o servidor negou a requisição.
  • 412 – Precondition Failed: o servidor não atende as pré-condições indicadas no cabeçalho do navegador.
  • 416 – Requested Range Not Satisfiable: normalmente ocorre quando o recurso solicitado não é aceito pelo servidor ou está mal configurado.
  • 417 – Expectation Failed: o erro indica que o servidor não conseguiu cumprir as exigências do campo de cabeçalho Expect.
  • 422 – Unprocessable Entity: o servidor reconheceu o tipo de requisição e a sintaxe está correta, mas foi incapaz de seguir em frente.
  • 423 – Locked: o código indica que o recurso acessado está bloqueado.
  • 424 – Failed Dependency: uma das dependências da requisição falhou.
  • 426 – Upgrade Required: o servidor informa ao cliente que é preciso utilizar outro protocolo para concluir essa requisição.
  • 428 – Precondition Required: significa que o servidor exige uma resposta condicional para a requisição.
  • 431 Request Header Fields Too Large: o servidor não vai processar a requisição porque os campos de cabeçalho são muito grandes.
  • 451 – Unavailable For Legal Reasons: significa que a página acessada foi censurada, por exemplo.

5xx – Erros do servidor

Como o nome sugere, esses status HTTP indicam erros do servidor. Então, se você vir um erro 5xx em seu site, prepare-se para falar com o suporte de sua hospedagem!

Entretanto, a causa de alguns erros de servidor podem estar relacionadas a sites mal feitos ou mal configurados também (o que pode ocasionar no erro 500 ou 503, por exemplo). Assim sendo, obviamente é preciso investigar o que causou o erro.

  • 500 – Internal Server Error: uma mensagem genérica indicando que o servidor, por algum motivo, não conseguiu seguir com a solicitação.
  • 501 – Not Implemented: o servidor não suporta a requisição solicita.
  • 502 – Bad Gateway: significa que o servidor, agindo como um proxy ou gateway, recebeu uma resposta inválida.
  • 503 – Service Unavailable: normalmente indica que o servidor está inacessível por conta de manutenção ou sobrecarga, por exemplo.
  • 504 – Gateway Timeout: o código indica que o servidor, atuando como um proxy ou gateway, não recebeu uma resposta a tempo para completar a requisição.
  • 505 – HTTP Version Not Supported: o servidor não suporta ou não autoriza a versão HTTP usada na requisição.
  • 506 – Variant Also Negotiates: indica que o servidor tem um erro de configuração interno e não consegue concluir a negociação transparente de conteúdo.
  • 507 – Insufficient Storage: o servidor não pode salvar a representação necessária para completar a requisição.
  • 508 – Loop Detected: o código indica que o servidor identificou um loop infinito ao processar a requisição.
  • 510 – Not Extended: a política de acesso ao recurso não foi atendida na solicitação.
  • 511 – Network Authentication Required: significa que o cliente precisa se autenticar para obter acesso à rede.
Erros na CloudFlare
printscreen de erro 502 na Cloudflare

A CloudFlare também trabalha com uma lista de erros específica:

  • 520 – Web Server Returns an Unknown Error: ocorre quando o servidor retorna uma resposta vazia, desconhecida ou inesperada.
  • 521 – Web Server is Down: acontece quando o servidor de origem recusa as conexões através de um bloqueio ou simplesmente estando offline.
  • 522 – Connection Timed Out: significa que o tempo limite de contato com o servidor foi excedido.
  • 523 – Origin Is Unreachable: o erro aparece quando a Cloudflare não consegue acessar o servidor de origem.
  • 524 – A Timeout Occurred: apesar de a conexão ao servidor ter sido feita com sucesso, a Cloudflare não obteve uma resposta HTTP antes do tempo limite.
  • 525 – SSL Handshake Failed: geralmente há um problema de configuração no servidor relacionado ao certificado SSL.
  • 526 – Invalid SSL Certificate: o certificado SSL do servidor não pode ser validado, e o certificado SSL da Cloudflare está configurado como Completo (estrito).
  • 527 – Railgun Listener To Origin: indica uma conexão interrompida entre a Cloudflare e o servidor de Railgun do servidor de origem.

Como resolver erros 4xx comuns?

Há três erros muito comuns na classe de códigos de status 4xx.

Se você gostaria de ver a solução para outro erro por aqui, deixe seu comentário! A ideia é deixar esse post o mais útil possível.

Erro 403 – Proibido

Apesar de ser uma mensagem de erro, pode ser algo configurado de maneira proposital – principalmente por motivos de segurança.

Por exemplo, ao bloquear arquivos de execução do servidor, essa mensagem de erro evita que pessoas indesejadas (ou robôs) acessem esses recursos indevidamente.

Mas se você está tentando acessar uma página que não deveria estar bloqueada, a solução pode ser revisar os níveis de permissão do arquivo no seu servidor. Na dúvida, fale com o suporte de sua hospedagem.

Erro 404 – Página Não Encontrada

Há alguns motivos para uma página retornar o erro 404. Por exemplo:

  • A página foi propositalmente apagada e não há redirecionamento configurado;
  • Ou então o administrador do site apagou a página sem querer;
  • A página nunca existiu. Então, por algum motivo alguém está tentando acessar um link com endereço incorreto.

A não ser que você queira recuperar essa página, a solução ideal é criar um redirect 301 para outra página de conteúdo semelhante.

Entretanto, se for o caso de algum link incorreto, é preciso investigar sua origem. Sendo algo interno ou externo, tente corrigir o link e, por via das dúvidas, faça um redirect 301 do endereço incorreto para o correto também.

Mas se não há para onde redirecionar essa página, e ela está indexada no Google, o ideal é “converter” o erro 404 para 410.

Erro 410 – Perdido

Esse status indica que a página foi deletada do servidor. Então, não há engano: a página realmente não deve existir.

A não ser, é claro, que você tenha apagado o endereço sem querer. Aí as sugestões são as mesmas que comentei acima para o erro 404.

Por outro lado, o estado HTTP 410 diz para o Google que aquela página foi definitivamente apagada e não deve ser indexada porque não há outro conteúdo semelhante no site.

Então, em termos de otimização para o Google, é melhor que as páginas apagadas retornem 410 em vez de 404.

Como solucionar erros 5xx comuns?

São quatro os erros 5xx mais comuns.

Mas repito: se você quer a explicação e solução para outro erro importante por aqui, deixe seu comentário!

Erro 500 – Erro Interno Do Servidor

Conforme comentei mais acima, essa é uma mensagem de erro bem genérica. Ou seja, pode ter a ver com vários tipos de problemas.

Eventualmente o problema pode ser com a permissão de arquivos do servidor. Se a aplicação (o site, no caso) tenta executar um arquivo que não pode ser lido devido a uma restrição de permissões, isso pode ser o suficiente para disparar o erro 500.

Entretanto, o ideal é dar uma olhada nos logs do servidor. Normalmente, por lá há mais detalhes sobre o problema que está gerando esse erro.

Outro exemplo clássico é a mensagem “Erro ao estabelecer uma conexão com o banco de dados”. A não ser que você tenha conhecimento técnico, sugiro entrar em contato com o suporte da hospedagem para uma solução.

Erro 502 – Bad Gateway e Erro 504 – Gateway Timeout

Ao ver esse erro, o primeiro passo é atualizar a página no navegador. Pode ser uma instabilidade momentânea, então talvez você tenha que esperar um pouco.

Se o problema persistir, o segundo passo é limpar completamente o cache do seu navegador e tentar novamente.

Entretanto, se você ainda estiver visualizando esses erros, entre em contato com o suporte de sua hospedagem. Afinal, essas mensagens de erro podem indicar que há algum problema no servidor.

Mas antes disso você pode tentar reiniciar seu modem. Isso porque pode ser algum problema ou instabilidade em seu provedor de internet, principalmente se você não estiver conseguindo acessar outros sites.

Erro 503 – Serviço Indisponível

Esse erro é bem comum em horários de pico de acessos. Ou seja, o servidor não aguenta o volume de visitas simultâneas e acaba sobrecarregado. Assim sendo, o site fica fora do ar.

Mas isso pode não ser culpa inteiramente do servidor. Certifique-se de que seu site é bem otimizado, com cache configurado corretamente.

Se for WordPress, então, esse cuidado tem que ser redobrado. Evite temas prontos se seu bolso permitir. Afinal, temas prontos, em sua grande maioria, são extremamente pesados e com recursos que sobrecarregam o servidor.

Mas se você garante que seu site é bem feito, entre em contato com o suporte de sua hospedagem. Talvez você precise assinar um plano superior!

Como saber se meu site tem erros HTTP?

Não estranhe a pergunta. Sim, é possível que seu site tenha diversos erros e você nem saiba disso.

Recomendo que você faça uma auditoria mensal, ou até mesmo semanal, em seu site. Para tanto, há duas ferramentas que facilitam demais esse processo:

  • Google Search Console: ferramenta grátis do Google, o Search Console fornece uma lista com erros que o Google identifica no momento em que rastreia seu site.
  • SEMrush: indispensável para otimizar sites, a ferramenta faz um relatório completo com todos os erros do seu site. Além de apontar os erros 4xx e 5xx encontrados em seu site, o SEMrush indica links quebrados, redirecionamentos, páginas incorretas no sitemap, lentidão e por aí vai.

Por fim, não se esqueça: verificar a saúde do seu site com frequência e a qualidade da hospedagem utilizada é imprescindível para manter tudo funcionando como deveria.

Créditos das imagens: Freepik e Cloudflare.

Revisão

Conseguiu resolver os problemas de status HTTP em seu site? Na dúvida, revise!

Qual a diferença entre redirect 301 e 302?

O redirecionamento 301 é permanente. Ou seja, a página redirecionada não existe mais e todo o tráfego dela deve ser levado para uma nova página.
Já o redirecionamento 302 é temporário, indicando que a página redirecionada pode voltar a existir em breve. Assim sendo, se uma página precisa sair do ar para correções ou testes, esse tipo de redirecionamento contribui para que o visitante não veja uma página de erro e permaneça no site.

Como identificar se um erro é do site ou da hospedagem?

Apesar de semanticamente os erros 4xx terem relação com o site, os erros 5xx, que são de servidor, podem ter a ver com site mal feito / configurado também. É preciso sempre analisar logs de servidor, o código-fonte do site e os recursos da hospedagem para identificar a causa do problema e como solucioná-lo.

Como identificar erros em um site?

As ferramentas mais indicadas para encontrar erros 4xx e 5xx em um site são o Google Search Console e o SEMrush.

A cópia dos conteúdos e trabalhos deste site não é permitida. Saiba mais clicando aqui!

Quem é Fabio Lobo?

Web designer, desenvolvedor front-end e programador WordPress.

Quem é Fabio Lobo?

Estou há mais de uma década na área. O foco do meu trabalho é em usabilidade, facilidade pro usuário, acessibilidade, SEO e performance.

Também tenho alguns projetos open source, além de prestar consultoria em hospedagem WordPress e criação de conteúdo.

Como posso te ajudar hoje?

Trabalho com consultoria, suporte, manutenção, criação e desenvolvimento.

Fale comigo

Leia também...

...alguns textos que têm a ver com o assunto:

Saiba se está na hora de refazer o site do seu negócio

Será que você precisa de um site novo ou só alguns ajustes e otimizações? Um refactoring ou um redesign? Há várias formas de refazer um site. Saiba qual é a melhor!

Acelerar WordPress: dicas para carregamento rápido

Deixar o WordPress veloz requer uma otimização bem específica – e bem feita. Veja essas dicas para acelerar o WordPress e reduzir seu tempo de carregamento!

Como escolher o melhor domínio para registrar

Quer escolher o melhor domínio para seu site e contas de e-mail? Aprenda onde registrar o domínio, onde hospedar seu site e e-mails e como registrar sua marca.

Deixe seu comentário

Se você deseja um orçamento, entre em contato clicando aqui.

Quero um orçamento