Todos os códigos de status HTTP, o que significam, quando enviar e a RFC de onde vêm
Funciona no seu navegador. Nada do que você digita é enviado a lugar nenhum.Um código de status HTTP diz o que aconteceu em 3 dígitos. 404 quer dizer que o recurso nunca esteve lá, 410 que esteve e sumiu de vez, e 301 o move permanentemente. Cada código está listado aqui com quando enviar e a RFC que o define.
Esta página foi traduzida automaticamente do original em inglês. Nenhuma pessoa revisou ainda a tradução; a versão em inglês é a que deve ser considerada. Ler o original em inglês
Digite na caixa de busca um número, um nome ou o que você quer dizer, como "rate limit".
Filtre a lista de Códigos com os botões de Exibir: Comuns, Todos ou uma classe de 1xx a 5xx.
Selecione um código para ler o significado, quando usar, se entra em cache e a RFC que o define.
Escolha uma linguagem em "Enviar este código em" e clique em Copiar trecho para levar o código que o retorna.
Esta referência de códigos de status HTTP lista todos os códigos registrados de 100 a 511, além dos não registrados que nginx, Apache, Laravel e Cloudflare retornam. Cada item diz o que o código realmente significa, quando enviá-lo, se um cache pode guardar a resposta sem cabeçalhos de cache, se um redirecionamento muda o método da requisição e qual RFC o define.
A busca funciona de três jeitos. Digite um número como 404, ou uma classe como 4xx, para ir direto a ele. Digite um nome como "not found". Ou descreva o que quer expressar, e a busca por intenção encontra o código: "login failed" dá 401, "rate limit" dá 429, "file too large" dá 413, "validation failed" dá 422.
Dois detalhes que a maioria das listas erra estão incluídos aqui. Entrar em cache não é um sim ou não: a seção 15.1 da RFC 9110 cita doze códigos que um cache pode guardar sem nenhum cabeçalho explícito, e é por isso que um 404 acidental pode grudar. E os redirecionamentos são diferentes: 301 e 302 deixam o cliente transformar um POST em GET, 303 sempre faz isso, enquanto 307 e 308 precisam repetir exatamente o método e o corpo.
Cada código comum vem com um trecho para copiar em HTTP puro, Express, Fastify, FastAPI, Go e PHP, incluindo o cabeçalho que o código exige, como WWW-Authenticate em um 401 ou Allow em um 405. Nada é enviado para lugar nenhum; a tabela inteira está na página.
Use 401 Unauthorized. Ele significa que o servidor não sabe quem você é, então uma credencial ausente, expirada ou errada fica aí. Use 403 Forbidden só quando você sabe quem está chamando e mesmo assim recusa. A especificação pede um cabeçalho WWW-Authenticate em todo 401.
401 quer dizer não autenticado: envie credenciais e tente de novo. 403 quer dizer autenticado mas sem permissão: credenciais melhores não vão ajudar. Se revelar que um registro existe já é um vazamento, algumas APIs respondem 404 em vez de 403 para que um atacante não descubra nada.
A seção 15.1 da RFC 9110 lista 200, 203, 204, 206, 300, 301, 308, 404, 405, 410, 414 e 501 como armazenáveis de forma heurística, e a RFC 7725 acrescenta o 451. Um cache pode guardá-los sem Cache-Control nem Expires, e é por isso que um 404 temporário pode persistir. Todos os outros códigos precisam de cabeçalhos de cache explícitos.
A especificação não permite, mas quase todo navegador faz exatamente isso com 301 e 302. Um 303 sempre transforma a próxima requisição em GET. Se o método e o corpo precisam sobreviver ao redirecionamento, use 307 para uma mudança temporária ou 308 para uma permanente.
418 I'm a Teapot vem da RFC 2324, uma piada de 1º de abril de 1998 sobre um protocolo de cafeteira. Uma proposta de 2017 para reaproveitar o número foi retirada após objeções, então ele continua reservado no registro da IANA e nunca deve ter um significado real.
Não. 499 é um código do nginx que só aparece nos logs, para um cliente que desligou, e 520 a 527 são códigos da Cloudflare para problemas entre a borda e o seu servidor de origem. Nenhum está registrado na IANA. Eles estão aqui porque você vai encontrá-los nos logs, cada um marcado com o produto que o inventou.
Ainda com dúvidas? Pergunte sobre Códigos de status HTTP e qualquer pessoa que saiba pode responder. Não é preciso ter conta.