Skip to content

Referência baseada na RFC 9110 e no registro da IANA

Códigos de status HTTP

Um código de status HTTP é o número de três dígitos que o servidor coloca no início de toda resposta para dizer como o pedido terminou. O primeiro dígito é a classe: 1xx provisório, 2xx sucesso, 3xx redirecionamento, 4xx erro no pedido, 5xx falha do servidor.

Erros mais pesquisados

Como ler um código de status

Comece pelo primeiro dígito. A RFC 9110, seção 15, define cinco classes, e um cliente que não conhece um código específico deve tratá-lo como o x00 da mesma classe: um 437 desconhecido vira 400, um 599 vira 500. Por isso a classe diz mais sobre o próximo passo do que o número exato.

A classe também mostra de quem é a vez. Um 4xx coloca a correção do lado de quem fez o pedido: outra URL, credenciais válidas, um corpo menor, menos pedidos por minuto. Um 5xx coloca a correção no servidor ou em algo atrás dele, como uma aplicação que caiu ou um serviço que demorou demais, e o mesmo pedido pode funcionar um minuto depois.

Alguns números que aparecem nos logs nem estão no registro da IANA. O nginx grava 499 quando o cliente desiste antes da resposta ficar pronta e usa 444 para fechar a conexão sem responder. A Cloudflare devolve 520 a 526 quando não consegue uma resposta utilizável do seu servidor de origem. Eles ficam num grupo separado abaixo, para você saber quando está lendo uma convenção de fornecedor e quando está lendo o padrão.

A lista oficial é o registro de códigos de status HTTP da IANA. Todo código registrado que aparece na prática tem uma página própria aqui; ficam de fora o 104 (registro provisório para uploads retomáveis) e o 306 (reservado, sem uso desde o HTTP/1.1).

1xx Informativos

Respostas provisórias enviadas antes da resposta final. O pedido ainda está em andamento; o navegador lida com elas sem mostrar nada.

Códigos de status: Informativos
StatusSignificado
100 ContinueSinal verde provisório: os cabeçalhos foram aceitos, pode enviar o corpo.
101 Switching ProtocolsO servidor aceitou o Upgrade; a conexão passa a usar outro protocolo.
102 ProcessingSinal de vida do WebDAV: pedido recebido, ainda processando, não desista.
103 Early HintsCabeçalhos Link enviados antes da resposta final para o navegador adiantar downloads.

2xx Sucesso

O servidor recebeu, entendeu e aceitou o pedido. O código específico diz o que aconteceu: conteúdo devolvido, recurso criado, tarefa enfileirada ou nada a devolver.

Códigos de status: Sucesso
StatusSignificado
200 OKO pedido deu certo e o corpo da resposta traz o resultado.
201 CreatedUm novo recurso foi criado; o Location diz onde ele está.
202 AcceptedEnfileirado para processamento; ainda não terminou e pode falhar.
203 Non-Authoritative InformationSucesso, mas um proxy alterou a resposta do servidor de origem.
204 No ContentSucesso, e de propósito não há corpo na resposta.
205 Reset ContentSucesso; limpe o formulário ou a tela que enviou o pedido.
206 Partial ContentSó a faixa de bytes pedida no cabeçalho Range, não o arquivo inteiro.
207 Multi-StatusVários resultados num corpo só, cada um com o próprio status.
208 Already ReportedDentro de um 207: esta coleção já foi listada antes na resposta.
226 IM UsedO corpo é um delta ou transformação do recurso, não a cópia inteira.

3xx Redirecionamento

O cliente precisa dar mais um passo, geralmente seguir o cabeçalho Location para outra URL, ou reaproveitar a cópia que já tem em cache (304).

Códigos de status: Redirecionamento
StatusSignificado
300 Multiple ChoicesExistem várias versões do recurso e o cliente deve escolher uma.
301 Moved PermanentlyMudou de vez para a URL do Location; atualize links e favoritos.
302 FoundEstá temporariamente em outra URL; continue usando a original.
303 See OtherBusque o resultado em outra URL com GET, normalmente depois de um POST.
304 Not ModifiedA cópia em cache continua válida; reaproveite. Vem sem corpo.
305 Use ProxyObsoleto. Significava: repita o pedido pelo proxy indicado.
307 Temporary RedirectEstá em outro lugar por enquanto; repita o mesmo pedido, mesmo método e corpo.
308 Permanent RedirectMudou de vez; repita o pedido no Location com o mesmo método.

4xx Erros do cliente

O problema está no pedido: URL errada, credenciais ausentes ou recusadas, dados inválidos, pedidos demais. Repetir o mesmo pedido traz a mesma resposta.

Códigos de status: Erros do cliente
StatusSignificado
400 Bad RequestO servidor não processa o pedido porque algo nele está malformado.
401 UnauthorizedO pedido não tem credenciais válidas; faça login ou envie um token válido.
402 Payment RequiredReservado pela especificação; na prática, um pagamento ou limite do plano bloqueia o pedido.
403 ForbiddenO servidor entendeu o pedido e recusa; entrar de novo na conta não muda isso.
404 Not FoundNão existe nada nesta URL, ou o servidor prefere não revelar que existe.
405 Method Not AllowedA URL existe, mas não aceita este método, como um POST numa página só de leitura.
406 Not AcceptableNenhuma versão do recurso bate com os formatos ou idiomas que o cliente aceita.
407 Proxy Authentication RequiredUm proxy no caminho até o servidor exige credenciais antes de repassar o pedido.
408 Request TimeoutO servidor parou de esperar porque o cliente demorou demais para enviar o pedido.
409 ConflictO pedido conflita com o estado atual do recurso, como um duplicado ou uma edição desatualizada.
410 GoneO recurso foi removido de propósito e não vai voltar.
411 Length RequiredO servidor recusa um corpo de requisição sem o cabeçalho Content-Length.
412 Precondition FailedUm cabeçalho condicional (If-Match, If-Unmodified-Since) deu falso no servidor.
413 Content Too LargeO corpo do pedido (geralmente um upload) é maior do que o servidor aceita.
414 URI Too LongA URL, quase sempre a query string, é mais longa do que o servidor aceita ler.
415 Unsupported Media TypeO servidor não aceita o formato do corpo informado em Content-Type ou Content-Encoding.
416 Range Not SatisfiableO intervalo de bytes do cabeçalho Range fica fora do arquivo.
417 Expectation FailedUm servidor no caminho não consegue atender o cabeçalho Expect do pedido.
418 I'm a teapotUma piada de 1º de abril da RFC 2324, hoje reservada para ninguém reaproveitar.
421 Misdirected RequestA conexão chegou a um servidor que não responde por este domínio.
422 Unprocessable ContentO corpo está bem formado, mas os valores quebram as regras de validação.
423 LockedWebDAV: o arquivo ou pasta está bloqueado por outra pessoa.
424 Failed DependencyNão executado porque uma ação anterior do mesmo pedido falhou.
425 Too EarlyRecusado porque chegou em dados 0-RTT do TLS 1.3 e poderia ser repetido.
426 Upgrade RequiredTroque para o protocolo do cabeçalho Upgrade, muitas vezes WebSocket, e tente de novo.
428 Precondition RequiredAlterações precisam ser condicionais: envie If-Match com o ETag lido por último.
429 Too Many RequestsLimite de taxa atingido: pedidos demais num intervalo. Espere e tente de novo.
431 Request Header Fields Too LargeCabeçalhos grandes demais, quase sempre por cookies em excesso ou enormes.
451 Unavailable For Legal ReasonsBloqueado por uma exigência legal, como ordem judicial ou pedido de remoção.

5xx Erros do servidor

O pedido pode estar certo, mas o servidor, ou algo atrás dele, falhou. Muitas vezes é temporário, e pedidos idempotentes podem ser repetidos com espera crescente.

Códigos de status: Erros do servidor
StatusSignificado
500 Internal Server ErrorAlgo quebrou dentro do servidor enquanto ele processava o pedido.
501 Not ImplementedO servidor não suporta esse método ou recurso em nenhum endereço.
502 Bad GatewayUm proxy ou gateway recebeu resposta inválida do servidor atrás dele.
503 Service UnavailableO servidor está temporariamente sobrecarregado ou em manutenção.
504 Gateway TimeoutUm proxy desistiu de esperar a resposta do servidor atrás dele.
505 HTTP Version Not SupportedO servidor recusa a versão principal do HTTP usada no pedido.
506 Variant Also NegotiatesErro de configuração da negociação: a variante escolhida também negocia.
507 Insufficient StorageO servidor não tem espaço para guardar o que o pedido exige.
508 Loop DetectedO WebDAV entrou em laço infinito; em hospedagem compartilhada, a conta bateu no limite.
510 Not ExtendedObsoleto: faltou no pedido uma extensão exigida pelo servidor (RFC 2774).
511 Network Authentication RequiredÉ preciso fazer login na rede (portal cativo) antes de navegar.

4xx/5xx Códigos não oficiais (nginx, Cloudflare)

Não estão no registro da IANA, mas aparecem muito em logs e páginas de erro. O nginx usa 444 e 499 internamente; a Cloudflare usa 520 a 526 para indicar qual lado do proxy falhou.

Códigos de status: Códigos não oficiais (nginx, Cloudflare)
StatusSignificado
444 No ResponseO nginx fechou a conexão sem devolver nada.
499 Client Closed RequestO cliente desligou antes do nginx conseguir enviar a resposta.
520 Web Server Returns an Unknown ErrorA Cloudflare recebeu uma resposta vazia, malformada ou inesperada da origem.
521 Web Server Is DownA origem recusou a conexão da Cloudflare: servidor parado ou IPs bloqueados.
522 Connection Timed OutA conexão TCP da Cloudflare com a origem ficou sem resposta a tempo.
523 Origin Is UnreachableA Cloudflare não tem rota de rede até o IP da origem.
524 A Timeout OccurredA origem aceitou o pedido mas não respondeu dentro do timeout da Cloudflare.
525 SSL Handshake FailedO handshake TLS entre a Cloudflare e a origem falhou.
526 Invalid SSL CertificateO modo Full (strict) não conseguiu validar o certificado da origem.

Perguntas frequentes

Quais são as cinco classes de códigos de status HTTP?
1xx informativos (respostas provisórias como 100 Continue e 103 Early Hints), 2xx sucesso (200 OK, 201 Created, 204 No Content), 3xx redirecionamento (301, 302, 304, 307, 308), 4xx erros do cliente (400, 401, 403, 404, 429) e 5xx erros do servidor (500, 502, 503, 504).
Onde os códigos de status HTTP são definidos oficialmente?
Os principais estão na RFC 9110, HTTP Semantics (2022), seção 15. Outros vêm de RFCs próprias, como a RFC 6585 para 428, 429, 431 e 511, e a RFC 7725 para o 451. A IANA mantém a lista oficial no HTTP Status Code Registry.
Qual a diferença entre erro 4xx e erro 5xx?
Um 4xx significa que o servidor considera o pedido errado e repetir sem mudar nada vai falhar de novo. Um 5xx significa que o servidor, ou um serviço atrás dele, não conseguiu atender um pedido que pode estar perfeito, então tentar mais tarde pode dar certo.
Como vejo o código de status de uma página?
Abra as ferramentas de desenvolvedor do navegador, vá na aba Rede (Network) e recarregue: a coluna Status mostra o código de cada requisição. No terminal, curl -I https://exemplo.com mostra a linha de status e os cabeçalhos sem o corpo.
Um servidor pode inventar seus próprios códigos de status?
Tecnicamente qualquer número de 100 a 599 passa, e o cliente usa o significado da classe. Na prática, códigos inventados dão problema com proxies, bibliotecas e monitoramento. Prefira um código padrão e coloque os detalhes no corpo da resposta, por exemplo no formato problem details da RFC 9457.

Revisado em por Arielton Oberek.