Códigos de status HTTP
Funciona inteiramente no seu navegador. Seus arquivos e dados nunca saem do seu dispositivo.
| 1xxInformativo | ||
|---|---|---|
| 100 | Continue | A parte inicial de uma requisição foi recebida e o cliente deve continuar. |
| 101 | Switching Protocols | O servidor concorda em trocar de protocolo conforme solicitado pelo cliente. |
| 102 | Processing | O servidor recebeu e está processando a requisição, mas nenhuma resposta está disponível ainda. |
| 103 | Early Hints | Usado para retornar alguns cabeçalhos de resposta antes da mensagem HTTP final. |
| 2xxSucesso | ||
| 200 | OK | A requisição foi bem-sucedida. |
| 201 | Created | A requisição foi bem-sucedida e um novo recurso foi criado como resultado. |
| 202 | Accepted | A requisição foi recebida, mas ainda não foi processada. |
| 203 | Non-Authoritative Information | Os metadados retornados não são exatamente os mesmos do servidor de origem. |
| 204 | No Content | O servidor atendeu à requisição, mas não há conteúdo para retornar. |
| 205 | Reset Content | O servidor pede ao cliente para redefinir o documento que enviou essa requisição. |
| 206 | Partial Content | O servidor está entregando apenas parte do recurso devido a um cabeçalho de intervalo enviado pelo cliente. |
| 207 | Multi-Status | Transmite informações sobre múltiplos recursos em situações em que vários códigos de status seriam apropriados. |
| 208 | Already Reported | Usado dentro de uma resposta DAV para evitar enumerar repetidamente os membros de múltiplas vinculações. |
| 226 | IM Used | O servidor atendeu a uma requisição do recurso e a resposta é uma representação do resultado de manipulações de instância. |
| 3xxRedirecionamento | ||
| 300 | Multiple Choices | A requisição tem mais de uma resposta possível e o cliente deve escolher uma. |
| 301 | Moved Permanently | O recurso foi movido permanentemente para uma nova URL. |
| 302 | Found | O recurso está temporariamente sob uma URL diferente. |
| 303 | See Other | A resposta pode ser encontrada em uma URL diferente e deve ser obtida com GET. |
| 304 | Not Modified | O recurso não foi modificado desde a versão especificada pelos cabeçalhos da requisição. |
| 305 | Use Proxy | O recurso solicitado deve ser acessado por meio do proxy indicado pelo campo location. |
| 307 | Temporary Redirect | O recurso está temporariamente sob uma URL diferente e o método não deve mudar. |
| 308 | Permanent Redirect | O recurso foi movido permanentemente e o método não deve mudar. |
| 4xxErro do cliente | ||
| 400 | Bad Request | O servidor não pode processar a requisição devido a um erro do cliente. |
| 401 | Unauthorized | O cliente deve se autenticar para obter a resposta solicitada. |
| 402 | Payment Required | Reservado para uso futuro, originalmente destinado a sistemas de pagamento digital. |
| 403 | Forbidden | O cliente não tem direitos de acesso ao conteúdo. |
| 404 | Not Found | O servidor não consegue encontrar o recurso solicitado. |
| 405 | Method Not Allowed | O método da requisição é conhecido pelo servidor, mas não é suportado pelo recurso de destino. |
| 406 | Not Acceptable | O servidor não consegue produzir uma resposta que corresponda à lista de valores aceitáveis. |
| 407 | Proxy Authentication Required | O cliente deve primeiro se autenticar com o proxy. |
| 408 | Request Timeout | O servidor atingiu o tempo limite esperando pela requisição. |
| 409 | Conflict | A requisição conflita com o estado atual do recurso de destino. |
| 410 | Gone | O conteúdo solicitado foi excluído permanentemente do servidor e não voltará. |
| 411 | Length Required | O servidor recusa aceitar a requisição sem um cabeçalho Content-Length definido. |
| 412 | Precondition Failed | Uma das condições nos cabeçalhos da requisição não foi atendida. |
| 413 | Payload Too Large | A entidade da requisição é maior do que os limites definidos pelo servidor. |
| 414 | URI Too Long | A URI solicitada pelo cliente é mais longa do que o servidor está disposto a interpretar. |
| 415 | Unsupported Media Type | O formato de mídia dos dados solicitados não é suportado pelo servidor. |
| 416 | Range Not Satisfiable | O intervalo especificado pelo cabeçalho Range não pode ser atendido. |
| 417 | Expectation Failed | A expectativa indicada no cabeçalho Expect da requisição não pôde ser atendida. |
| 418 | I'm a Teapot | O servidor se recusa a preparar café porque, permanentemente, é um bule de chá. |
| 419 | Page ExpiredNão oficial | Não padrão. O Laravel o retorna quando o token CSRF enviado com um formulário não corresponde à sessão, geralmente porque a sessão expirou com a página aberta. |
| 420 | Enhance Your CalmNão oficial | Não padrão. A antiga API de busca e tendências do Twitter o enviava a clientes que atingiam o limite de requisições; o código padrão para isso é o 429. O Spring Framework também definia o 420 como Method Failure, hoje obsoleto. |
| 421 | Misdirected Request | A requisição foi direcionada a um servidor incapaz de produzir uma resposta. |
| 422 | Unprocessable Content | A requisição estava bem formada, mas não pôde ser processada devido a erros semânticos. |
| 423 | Locked | O recurso que está sendo acessado está bloqueado. |
| 424 | Failed Dependency | A requisição falhou porque dependia de outra requisição que falhou. |
| 425 | Too Early | O servidor não está disposto a arriscar processar uma requisição que possa ser reproduzida. |
| 426 | Upgrade Required | O servidor se recusa a executar a requisição usando o protocolo atual. |
| 428 | Precondition Required | O servidor de origem exige que a requisição seja condicional. |
| 429 | Too Many Requests | O cliente enviou muitas requisições em um determinado período de tempo. |
| 431 | Request Header Fields Too Large | O servidor se recusa a processar a requisição porque seus campos de cabeçalho são muito grandes. |
| 444 | No ResponseNão oficial | Não padrão. Um código do nginx que fecha a conexão sem enviar nenhuma resposta; aparece nos logs do servidor, nunca no navegador. |
| 451 | Unavailable For Legal Reasons | O recurso solicitado está indisponível devido a uma exigência legal de negar acesso. |
| 499 | Client Closed RequestNão oficial | Não padrão. O nginx o registra quando o cliente fecha a conexão antes de o servidor terminar de responder. |
| 5xxErro do servidor | ||
| 500 | Internal Server Error | O servidor encontrou uma situação que não sabe como lidar. |
| 501 | Not Implemented | O método da requisição não é suportado pelo servidor e não pode ser processado. |
| 502 | Bad Gateway | O servidor, agindo como um gateway, recebeu uma resposta inválida do servidor upstream. |
| 503 | Service Unavailable | O servidor não está pronto para lidar com a requisição, muitas vezes devido a manutenção ou sobrecarga. |
| 504 | Gateway Timeout | O servidor, agindo como um gateway, não obteve uma resposta a tempo. |
| 505 | HTTP Version Not Supported | A versão do HTTP usada na requisição não é suportada pelo servidor. |
| 506 | Variant Also Negotiates | O servidor tem um erro de configuração interna na negociação transparente de conteúdo. |
| 507 | Insufficient Storage | O servidor não consegue armazenar a representação necessária para concluir a requisição. |
| 508 | Loop Detected | O servidor detectou um loop infinito ao processar a requisição. |
| 510 | Not Extended | São necessárias extensões adicionais à requisição para que o servidor a atenda. |
| 511 | Network Authentication Required | O cliente precisa se autenticar para obter acesso à rede. |
| 599 | Network Connect Timeout ErrorNão oficial | Um código não padrão usado por alguns proxies para sinalizar um tempo limite de conexão de rede atrás do proxy. |
Sobre esta ferramenta
Esta é uma lista de referência dos códigos de status HTTP de 100 a 599, cobrindo as cinco classes definidas na RFC 9110: informativa, sucesso, redirecionamento, erro do cliente e erro do servidor. Cada código mostra seu nome e uma breve descrição, e o campo de busca filtra a lista enquanto você digita, comparando com o número do código, o nome e o texto da descrição.
O que está incluído na lista?
Todos os códigos registrados na RFC 9110, mais alguns extras amplamente usados que nunca entraram na especificação principal mas aparecem o tempo todo em APIs reais: 418 (a piada da “sou um bule de chá” da RFC 2324), 429 (limite de requisições excedido) e 451 (indisponível por motivo legal). Digite “404”, “not found” ou “gateway” e só as linhas correspondentes continuam visíveis. Cada linha também tem um link próprio: acrescente #419 ao endereço da página para cair direto nesse código.
O que significam códigos não oficiais como o 419 e o 420?
Alguns códigos vêm de um framework ou servidor específico, e não de uma RFC. A lista marca esses com a etiqueta “Não oficial”. O código HTTP 419 (Page Expired) vem do Laravel: ele é retornado quando o token CSRF enviado com um formulário não bate mais com a sessão, quase sempre porque a sessão expirou com a página aberta. O erro HTTP 420 (Enhance Your Calm) era a resposta da antiga API de busca e tendências do Twitter para clientes que mandavam requisições demais. O código padrão para isso é o 429. O Spring Framework também usou o 420 para Method Failure, hoje obsoleto. Fecham a lista dois códigos do nginx: o 444 encerra a conexão sem enviar resposta, e o 499 indica que o cliente desistiu antes de o servidor terminar. Eles aparecem nos logs do servidor, nunca no navegador. Por fim, o 599 é usado por alguns proxies para timeout de conexão de rede.
Precisa de conexão com a internet?
Não. A lista é um dado estático renderizado direto na página, nada é buscado em um servidor nem ao carregar nem ao pesquisar. Por isso a busca é instantânea.
Quando eu usaria isso?
É útil ao depurar uma resposta de API e não lembrar se 422 significa a mesma coisa que 400, ou ao decidir se um redirecionamento deveria devolver 301, 302 ou 308 e precisar relembrar a diferença entre eles. Também serve para os códigos mais raros, como 409 (conflito), 416 (intervalo não satisfatível), ou a distinção entre 502 (bad gateway) e 503 (serviço indisponível). Veja a referência de códigos de status HTTP do MDN para mais detalhes sobre cada um.
As cinco classes já dão uma primeira leitura rápida de qualquer resposta, mesmo antes de checar o número exato. Um código que começa com 2 significa que a requisição deu certo, 3 significa que é preciso seguir um redirecionamento, 4 significa que algo estava errado na própria requisição, e 5 significa que o servidor foi quem falhou. É por isso que servidores, navegadores e clientes de API costumam tomar decisões só pelo primeiro dígito. Não é preciso ser desenvolvedor para achar isso útil: muitas páginas de erro comuns só mostram um número seco, e esta lista transforma esse número em uma frase em linguagem simples.