Referência de Códigos de Status HTTP
Uma referência pesquisável de todos os códigos de status HTTP oficiais — o que cada um significa e quando um servidor deve enviá-lo, conforme a RFC 9110 e RFCs relacionadas.
199 visualizações
Nenhum código de status correspondente.
Por Que os Códigos de Status São Agrupados pelo Primeiro Dígito
Todo código de status HTTP é um número de três dígitos, e apenas o primeiro dígito já informa ao cliente a categoria geral da resposta antes mesmo de ler o restante - uma escolha de design incorporada ao HTTP desde suas primeiras especificações e mantida até hoje, formalizada na RFC 9110, o documento que consolidou e substituiu a antiga série RFC 7230-7235 para definir a semântica do HTTP independentemente de qualquer versão específica do protocolo (HTTP/1.1, HTTP/2 e HTTP/3 compartilham todos os mesmos significados de código de status). 1xx (Informativo) significa que a requisição foi recebida e compreendida e o processamento continua - são respostas provisórias que um cliente não deve tratar como finais. 2xx (Sucesso) significa que a requisição foi recebida, compreendida e aceita. 3xx (Redirecionamento) significa que uma ação adicional é necessária para completar a requisição, tipicamente buscar uma URL diferente. 4xx (Erro do Cliente) significa que a requisição, conforme enviada, contém um problema causado pelo cliente - sintaxe incorreta, autenticação ausente, um recurso que não existe. 5xx (Erro do Servidor) significa que a requisição aparentemente era válida, mas o servidor não conseguiu atendê-la. Esse sistema de primeiro dígito significa que um cliente que reconhece apenas o dígito "4" e nada mais sobre um código específico ainda sabe, corretamente, que algo na sua própria requisição precisa ser corrigido em vez de tentado novamente de forma idêntica - esse comportamento de fallback é precisamente o motivo pelo qual o padrão o exige.
O segundo e o terceiro dígitos subdividem cada classe em significados específicos e documentados, e espera-se que um cliente recorra ao comportamento da classe geral para qualquer código que não reconheça especificamente - por isso códigos obscuros ou mais recentes, como 226 ou 508, ainda são seguros de serem tratados de forma aproximadamente correta por softwares mais antigos, mesmo sem suporte explícito. Os códigos também não são inventados livremente: o registro completo é mantido pela IANA (a Internet Assigned Numbers Authority) justamente para que "599" ou "250" não possam significar duas coisas diferentes em dois servidores diferentes - todo código em uso ativo remonta a uma RFC específica que define sua semântica exata, várias das quais estendem a especificação original do HTTP/1.1 para protocolos específicos, sendo o mais visível o WebDAV (RFC 4918), de onde se originam os códigos 207, 208, 422, 423, 424 e 507/508 desta página.
Dois Códigos que Vale a Pena Conhecer com Precisão: 404 vs. 410
Dois dos códigos mais comumente confundidos são 404 Not Found e 410 Gone, e a distinção não é cosmética - ela muda como um mecanismo de busca e um navegador se comportam. 404 é deliberadamente ambíguo: o servidor não tem informação sobre se o recurso já existiu naquela URL, se pode voltar a existir, ou se a URL simplesmente foi digitada errada. 410 é uma afirmação deliberada e mais forte: o recurso costumava existir naquela URL exata e foi intencional e permanentemente removido, sem endereço de encaminhamento - a RFC 9110 recomenda explicitamente o 410 especificamente para esse caso em que "a condição provavelmente é permanente", em que um 404 subestimaria a certeza. Os mecanismos de busca tratam isso de forma diferente na prática: uma URL que retorna 404 repetidamente normalmente só é removida do índice depois de ser rastreada novamente várias vezes ao longo de um período estendido, apenas para o caso de voltar, enquanto um 410 sinaliza uma remoção intencional e os mecanismos de busca geralmente agem sobre isso mais rapidamente, removendo a página do índice mais cedo porque o servidor garantiu explicitamente que ela não voltará. Usar o 410 corretamente ao remover permanentemente uma página - em vez de usar 404 como padrão para tudo - é uma alavanca de SEO técnica pequena, mas real.
- 301 vs. 302 vs. 307 vs. 308: 301 e 308 significam ambos "movido permanentemente", enquanto 302 e 307 significam ambos "movido temporariamente" - o par mais recente 307/308 foi introduzido especificamente para garantir que o método da requisição e o corpo sejam preservados no redirecionamento (um POST permanece um POST), porque o comportamento histórico generalizado dos navegadores convertia silenciosamente redirecionamentos 301/302 em um GET, o que quebrava o reenvio de formulários de formas que os novos códigos corrigem.
- 401 vs. 403: 401 Unauthorized tecnicamente significa "você não está autenticado - faça login", apesar do nome confuso; 403 Forbidden significa "você foi identificado, mas não tem permissão para acessar isto", uma distinção que muitas APIs borram na prática, mas que a especificação mantém claramente separada.
- 429 Too Many Requests (RFC 6585) é a resposta padrão de limitação de taxa e é comumente combinada com um cabeçalho
Retry-After, informando ao cliente exatamente quanto tempo esperar antes de tentar novamente. - Os códigos 1xx raramente são vistos diretamente porque a maioria das bibliotecas de cliente HTTP os trata de forma transparente antes mesmo de o código da sua aplicação ver uma resposta - o 100 Continue, por exemplo, permite que um cliente verifique se vale a pena sequer enviar um corpo de requisição grande antes de enviá-lo.
Perguntas Frequentes
Qual é a diferença real entre 404 e 410?
Ambos significam que o recurso não pode ser encontrado, mas o 404 deixa ambíguo se ele já existiu ou pode voltar, enquanto o 410 é uma afirmação deliberada de que o recurso existiu naquela URL e foi removido permanente e intencionalmente. Os mecanismos de busca geralmente removem uma página 410 do índice mais rápido do que uma 404, porque o servidor confirmou explicitamente que a remoção é permanente.
O 418 "I'm a Teapot" é um código de status real e utilizável?
Ele se originou na RFC 2324, o "Hyper Text Coffee Pot Control Protocol" de 1998, uma RFC de piada do Dia da Mentira. Nunca foi levado a sério, mas provou ser útil como um código de teste distintivo e inequívoco, e a RFC 9110 o preserva formalmente hoje com uma nota explícita de que seu status é opcional e não se espera que seja implementado por servidores reais.
Por que os redirecionamentos 301 e 302 às vezes quebram envios de formulário?
Historicamente, muitos navegadores convertiam silenciosamente uma requisição POST redirecionada numa requisição GET ao seguir um 301 ou 302, descartando o corpo enviado. Os códigos mais recentes 307 (Temporary Redirect) e 308 (Permanent Redirect) foram introduzidos especificamente para garantir que o método HTTP original e o corpo da requisição sejam preservados durante o redirecionamento.
Qual é a diferença entre 401 e 403?
401 Unauthorized na verdade significa que o cliente não se autenticou de forma alguma - apesar do nome, está solicitando credenciais. 403 Forbidden significa que o cliente está identificado, mas explicitamente não tem permissão para acessar aquele recurso específico. Muitas APIs do mundo real os usam de forma frouxa ou intercambiável, mas a especificação mantém os significados distintos.
De onde vêm os códigos específicos do WebDAV, como 507 ou 423?
Eles são definidos na RFC 4918, a especificação WebDAV (Web Distributed Authoring and Versioning), que estende o HTTP simples com operações para gerenciamento remoto de arquivos, como bloquear um recurso (423 Locked) ou informar que o servidor ficou sem espaço de armazenamento (507 Insufficient Storage). Eles permanecem parte do registro oficial de códigos de status HTTP da IANA, junto com os códigos HTTP principais.
Ferramentas Semelhantes
Reportar um Problema
Referência de Códigos de Status HTTP
Comentários
Ainda não há comentários — seja o primeiro a escrever um!