Códigos de status HTTP

Entenda os Códigos de Status HTTP: 200, 301, 404, 500 e 503

Toda resposta de um servidor web começa com um código de status de três dígitos. Entenda o que significam as cinco classes, quais códigos mais importam para quem tem um site e como eles afetam visitantes, monitoramento e mecanismos de busca.

Capa do guia: Códigos de status HTTP
Índice

Sempre que um navegador, um robô de busca ou uma ferramenta de monitoramento acessa uma página, a resposta do servidor começa com um código de status HTTP de três dígitos. É o resumo curto do servidor sobre o que aconteceu: sucesso, redirecionamento, um problema na requisição ou um problema no servidor. Conhecer os códigos mais comuns ajuda a investigar quedas, configurar redirecionamentos corretamente e entender o que o seu monitor de uptime está dizendo.

Os códigos de status são definidos na especificação do HTTP, atualmente a RFC 9110 (HTTP Semantics). Também há uma referência fácil de ler no MDN Web Docs.

As cinco classes de códigos de status

O primeiro dígito define a classe da resposta:

ClasseSignificadoExemplos
1xxInformativa: a requisição foi recebida e o processamento continua100 Continue, 101 Switching Protocols
2xxSucesso: a requisição foi recebida, entendida e aceita200 OK, 201 Created, 204 No Content
3xxRedirecionamento: é preciso mais uma ação, normalmente seguir outra URL301, 302, 304, 307, 308
4xxErro do cliente: a requisição tem um problema400, 401, 403, 404, 410, 429
5xxErro do servidor: o servidor não conseguiu atender a uma requisição válida500, 502, 503, 504

Como dono de um site, você vai lidar principalmente com 2xx, 3xx, 4xx e 5xx.

200 OK

200 OK significa que a requisição deu certo e o servidor está devolvendo o conteúdo pedido. É o que toda visualização normal de página deveria produzir.

Uma armadilha a conhecer é o "soft 404": uma página que diz "não encontrada" ou mostra uma mensagem de erro, mas ainda retorna o status 200. Os navegadores a exibem sem problema, mas mecanismos de busca e ferramentas de monitoramento podem ser levados a achar que a página está saudável. Páginas de erro devem retornar um código de status de erro.

Redirecionamentos: 301, 302, 307 e 308

301 Moved Permanently

Um 301 diz aos clientes que o recurso foi movido permanentemente para a URL do cabeçalho Location. Use quando mudar o endereço de uma página, migrar de HTTP para HTTPS ou unificar as versões com e sem www de um domínio. Os mecanismos de busca tratam um redirecionamento permanente como um sinal forte para indexar a nova URL no lugar da antiga.

302 Found e 307 Temporary Redirect

Indicam uma mudança temporária: a URL original deve continuar sendo usada no futuro. Use para situações de curto prazo, como redirecionar temporariamente uma página sazonal. A diferença é técnica: um 307 garante que o método da requisição (por exemplo, POST) seja mantido na requisição redirecionada, enquanto historicamente os clientes trocavam POST por GET depois de um 302.

308 Permanent Redirect

A versão permanente do 307: como um 301, mas o método da requisição não pode mudar.

Evite cadeias e loops de redirecionamento

Cada redirecionamento custa uma ida e volta a mais. Uma cadeia como http://example.com → https://example.com → https://www.example.com → https://www.example.com/ deixa mais lenta toda primeira visita. O ideal é que qualquer URL antiga redirecione uma única vez, direto para o endereço final. Um loop de redirecionamento, em que as URLs redirecionam umas para as outras, deixa a página inacessível. Nosso verificador de status HTTP mostra cada etapa de uma cadeia de redirecionamentos.

304 Not Modified

O 304 não é um redirecionamento de verdade. Ele avisa o navegador de que a cópia em cache ainda é válida, então o conteúdo não precisa ser baixado de novo. É uma parte normal e saudável do cache.

Erros do cliente: 4xx

400 Bad Request

O servidor não conseguiu entender a requisição, por exemplo por causa de uma sintaxe malformada. 400 ocasionais costumam ser causados por clientes com defeito ou robôs; muitos vindos de usuários reais indicam um bug.

401 Unauthorized e 403 Forbidden

401 significa que é necessária autenticação ou que ela falhou. 403 significa que o servidor entendeu quem você é (ou que você é anônimo), mas recusa o acesso. Um 403 em uma página que deveria ser pública muitas vezes aponta para permissões de arquivo erradas, um plugin de segurança ou uma regra de firewall bloqueando certos visitantes.

404 Not Found

404 significa que o servidor não encontrou nada naquela URL. É uma resposta normal para endereços digitados errado e páginas apagadas. O problema aparece quando páginas importantes retornam 404 por engano, por exemplo depois de uma migração que mudou a estrutura das URLs sem redirecionamentos.

Boa prática: ofereça uma navegação útil na sua página 404, monitore os logs em busca de URLs inexistentes acessadas com frequência e crie redirecionamentos 301 para as páginas que mudaram de lugar.

410 Gone

410 diz que o recurso foi removido de propósito e não vai voltar. É um sinal mais claro que o 404 quando você apagou um conteúdo deliberadamente.

429 Too Many Requests

O cliente enviou requisições demais em um determinado período e está sendo limitado. Um cabeçalho Retry-After pode informar quando tentar de novo.

Erros do servidor: 5xx

Os códigos 5xx significam que o servidor, ou algo por trás dele, falhou. São os códigos que mais importam para o monitoramento de uptime, porque normalmente afetam todos os visitantes.

500 Internal Server Error

Um erro genérico: algo deu errado e o servidor não tem um código mais específico para informar. Causas típicas incluem bugs na aplicação, erros fatais depois da atualização de um plugin ou do código, arquivos de configuração do servidor errados e falhas de conexão com o banco de dados. Os detalhes estão nos logs de erro da aplicação e do servidor web, não na resposta.

502 Bad Gateway

Muitos sites usam um proxy reverso, um balanceador de carga ou uma CDN na frente da aplicação. Um 502 significa que esse proxy recebeu uma resposta inválida do servidor por trás dele, muitas vezes porque o processo da aplicação travou ou não está rodando.

503 Service Unavailable

503 significa que o servidor está temporariamente impossibilitado de atender à requisição, normalmente porque está sobrecarregado ou em modo de manutenção. É o código correto para manutenções planejadas. Acrescentar um cabeçalho Retry-After informa aos clientes, inclusive aos robôs de busca, quando voltar, e sinaliza que a queda é temporária.

504 Gateway Timeout

O proxy ou o balanceador de carga não recebeu a tempo uma resposta da aplicação. Consultas lentas ao banco de dados, requisições demoradas e servidores de aplicação sobrecarregados são causas comuns.

Como os códigos de status afetam o monitoramento de uptime

Um monitor de uptime precisa decidir quais respostas contam como "online". Uma regra comum e sensata, e a que o UptimeStats usa, é:

  • 2xx e 3xx: online. Os redirecionamentos são seguidos (até 5 saltos) e a resposta final é avaliada.
  • 4xx e 5xx: fora do ar. Uma página inicial que retorna 404 ou 500 não está funcionando para os visitantes.
  • Nenhuma resposta (tempo esgotado, falhas de DNS, erros de TLS, conexões recusadas): fora do ar.

É por isso que um servidor que "responde" não está necessariamente saudável. Monitorar o código de status, e não só se o servidor responde, é o que detecta as falhas da aplicação.

Como os códigos de status afetam o SEO

  • 200 no conteúdo real e um código de erro adequado nas páginas de erro ajudam os mecanismos de busca a entender o seu site com precisão.
  • Redirecionamentos 301 são a forma padrão de mover um conteúdo permanentemente preservando sua visibilidade na busca.
  • 404 e 410 em páginas removidas são normais e não prejudicam o resto do site.
  • 503 com Retry-After é a forma certa de lidar com janelas curtas de manutenção.
  • Erros 5xx persistentes podem levar os robôs a desacelerar o rastreamento e, se durarem tempo suficiente, afetar a indexação.

Como verificar o código de status de uma página

Use o verificador de códigos de status HTTP gratuito para ver o código, a cadeia de redirecionamentos e os principais cabeçalhos da resposta de qualquer URL pública. No terminal, rode:

curl -I https://example.com

As ferramentas de desenvolvedor do navegador também mostram o status de cada requisição na aba Rede. Se você só precisa saber se um site está no ar e o que ele retorna agora, a ferramenta gratuita para verificar se um site está online dá uma resposta rápida.

Para ser avisado automaticamente quando suas páginas começarem a retornar erros, configure um monitoramento gratuito. Para entender em um quadro mais amplo por que os sites caem, veja O que deixa um site fora do ar?

Artigos relacionados

Como Problemas de DNS Podem Deixar seu Site Fora do Ar

Seu servidor pode estar funcionando perfeitamente e, mesmo assim, os visitantes não conseguem acessá-lo se o DNS falhar. Entenda como funciona a resolução de DNS, os problemas que causam quedas, como diagnosticá-los e como alterar registros com segurança.