Códigos de status HTTP
Pesquise por número ou por nome. O que cada código significa e quando usá-lo.
- Executa no seu navegador — seu texto nunca é enviado a lugar nenhum
- Sem cadastro, sem cotas, grátis para usar quantas vezes quiser
Como funciona
A maioria dos códigos de status é óbvia e alguns são realmente confusos — principalmente os que têm nomes parecidos. Digite um número, uma palavra como forbidden ou 4xx para ver uma classe inteira.
401 e 403, o par que todo mundo confunde
401 Unauthorized na verdade significa não autenticado: o servidor não sabe quem você é, e enviar credenciais pode resolver. 403 Forbidden significa que ele sabe exatamente quem você é e, mesmo assim, você não pode. Os nomes são históricos e pouco úteis; a distinção importa porque um convida a fazer login e o outro não.
301 versus 302, e por que isso importa para SEO
301 é permanente e transfere os sinais de ranking para o novo endereço. 302 é temporário e os mantém no original. Usar 302 para uma mudança permanente é um erro comum e discretamente caro. 307 e 308 são os equivalentes modernos que, além disso, garantem que o método não seja alterado — um POST continua sendo POST, o que 301 e 302 historicamente não faziam.
422 para validação
400 Bad Request significa que o servidor não conseguiu entender a requisição de forma alguma. 422 Unprocessable Content significa que ele a entendeu perfeitamente e o conteúdo está errado — um campo ausente, um e-mail inválido. A maioria das APIs deveria retornar 422 em falhas de validação e retorna 400 por hábito.
As classes
1xx informativo, 2xx sucesso, 3xx redirecionamento, 4xx culpa do cliente, 5xx culpa do servidor. Essa última divisão é a que se deve usar para atribuir responsabilidade em um incidente: um pico de 4xx significa que quem chama está fazendo algo errado, um pico de 5xx significa que é você.
418
I'm a teapot, de uma piada de 1º de abril de 1998, depois padronizado a sério quando uma tentativa de removê-lo das implementações causou protestos. Não é para uso real e é uma parte genuína da especificação.
Códigos de status HTTP — perguntas
Qual é a diferença entre 401 e 403?
401 significa não autenticado — o servidor não sabe quem você é. 403 significa que ele sabe e, ainda assim, você não tem permissão.
Devo usar 301 ou 302?
301 para uma mudança permanente, que transfere o ranking. 302 para uma temporária. Use 308 e 307 se o método HTTP não puder mudar.
Que código um erro de validação deve retornar?
422 Unprocessable Content. 400 significa que a requisição não pôde ser entendida de forma alguma.
O 418 é real?
Sim. Começou como uma piada de 1º de abril de 1998 e está realmente padronizado, embora não seja para uso real.
O que significa 502?
Um proxy recebeu uma resposta inválida do servidor que está atrás dele — geralmente a aplicação está fora do ar ou travando.