Códigos de Status HTTP – Lista completa explicada em português
Todos os códigos de status HTTP com explicação em português e a dica de quando usar cada um. Busque por número ou por palavra e resolva as dúvidas clássicas: 401 ou 403, 400 ou 422, 301 ou 302.
- 100
Continue
1xxRFC 9110O início da requisição está ok e o cliente pode enviar o corpo.
- 101
Switching Protocols
1xxRFC 9110O servidor aceitou trocar de protocolo — é o que acontece ao abrir um WebSocket.
- 102
Processing
1xxRFC 2518A requisição foi aceita e ainda está sendo processada (WebDAV).
- 103
Early Hints
1xxRFC 8297Adianta cabeçalhos de preload enquanto a resposta final não vem.
Quando usar: Para o navegador começar a baixar CSS e fontes antes do HTML ficar pronto.
- 200
OK
2xxRFC 9110Deu certo. O corpo traz o resultado da requisição.
Quando usar: Resposta padrão de GET, PUT e PATCH bem-sucedidos.
- 201
Created
2xxRFC 9110Um recurso novo foi criado.
Quando usar: POST que cria registro — devolva o Location apontando para ele.
- 202
Accepted
2xxRFC 9110A requisição foi aceita, mas ainda não foi processada.
Quando usar: Processamento assíncrono: fila, job em background, importação.
- 203
Non-Authoritative Information
2xxRFC 9110A resposta veio de um intermediário e foi modificada no caminho.
- 204
No Content
2xxRFC 9110Deu certo e não há corpo para devolver.
Quando usar: DELETE bem-sucedido, ou PUT que não precisa devolver o recurso.
- 205
Reset Content
2xxRFC 9110Deu certo e o cliente deve limpar o formulário que originou a requisição.
Quando usar: Formulário de lançamento repetitivo, em que o campo volta a ficar em branco.
- 206
Partial Content
2xxRFC 9110Só o trecho pedido no cabeçalho Range foi devolvido.
Quando usar: Download retomável e streaming de vídeo.
- 207
Multi-Status
2xxRFC 4918Um status por item, em XML (WebDAV).
- 208
Already Reported
2xxRFC 5842Os membros já foram listados antes na mesma resposta (WebDAV).
- 226
IM Used
2xxRFC 3229A resposta representa o resultado de uma ou mais manipulações de instância.
- 300
Multiple Choices
3xxRFC 9110Existe mais de uma representação possível e o cliente precisa escolher.
- 301
Moved Permanently
3xxRFC 9110O recurso mudou de endereço para sempre.
Quando usar: Troca de domínio ou de slug — é o redirecionamento que transfere autoridade de SEO.
- 302
Found
3xxRFC 9110Redirecionamento temporário; o método pode mudar para GET no caminho.
Quando usar: Prefira 307 quando precisar preservar o método.
- 303
See Other
3xxRFC 9110Veja o resultado em outra URL, sempre com GET.
Quando usar: Depois de um POST, para evitar reenvio ao atualizar a página.
- 304
Not Modified
3xxRFC 9110O conteúdo em cache continua válido; nada foi enviado.
Quando usar: Resposta a If-None-Match ou If-Modified-Since.
- 307
Temporary Redirect
3xxRFC 9110Redirecionamento temporário que preserva o método e o corpo.
- 308
Permanent Redirect
3xxRFC 9110Redirecionamento permanente que preserva o método e o corpo.
- 400
Bad Request
4xxRFC 9110O servidor não entendeu a requisição — sintaxe ou dados inválidos.
Quando usar: Payload malformado. Para regra de negócio, prefira 422.
- 401
Unauthorized
4xxRFC 9110Falta autenticação, ou ela falhou. Apesar do nome, é sobre identidade.
Quando usar: Token ausente, inválido ou expirado — mande o WWW-Authenticate.
- 402
Payment Required
4xxRFC 9110Reservado para pagamento; hoje usado por APIs para plano vencido ou crédito esgotado.
- 403
Forbidden
4xxRFC 9110O servidor entendeu quem você é e mesmo assim recusa.
Quando usar: Usuário autenticado sem permissão para aquele recurso.
- 404
Not Found
4xxRFC 9110O recurso não existe — ou o servidor prefere não revelar que existe.
- 405
Method Not Allowed
4xxRFC 9110A URL existe, mas não aceita esse método.
Quando usar: Devolva o cabeçalho Allow com os métodos aceitos.
- 406
Not Acceptable
4xxRFC 9110Nenhum formato do Accept pode ser atendido.
- 407
Proxy Authentication Required
4xxRFC 9110Igual ao 401, mas quem exige credencial é o proxy no caminho.
Quando usar: Rede corporativa com proxy autenticado.
- 408
Request Timeout
4xxRFC 9110O cliente demorou demais para enviar a requisição.
- 409
Conflict
4xxRFC 9110A requisição conflita com o estado atual do recurso.
Quando usar: Cadastro duplicado, edição concorrente, versão desatualizada.
- 410
Gone
4xxRFC 9110Existia e foi removido de propósito, sem previsão de voltar.
Quando usar: Melhor que 404 quando você quer que buscadores removam a página.
- 411
Length Required
4xxRFC 9110Falta o cabeçalho Content-Length.
- 412
Precondition Failed
4xxRFC 9110Uma condição do If-Match ou If-Unmodified-Since não foi satisfeita.
Quando usar: Controle de concorrência otimista com ETag.
- 413
Content Too Large
4xxRFC 9110O corpo da requisição passou do limite aceito.
- 414
URI Too Long
4xxRFC 9110A URL é grande demais — geralmente query string virando corpo.
- 415
Unsupported Media Type
4xxRFC 9110O Content-Type enviado não é aceito por esse endpoint.
- 416
Range Not Satisfiable
4xxRFC 9110O intervalo pedido no cabeçalho Range está fora do tamanho do arquivo.
- 417
Expectation Failed
4xxRFC 9110O servidor não atende ao que foi pedido no cabeçalho Expect.
- 418
I'm a teapot
4xxRFC 2324Piada de 1º de abril que virou tradição: um bule não faz café.
- 421
Misdirected Request
4xxRFC 9110A requisição chegou a um servidor que não pode respondê-la — comum com HTTP/2 e conexão reaproveitada.
- 422
Unprocessable Content
4xxRFC 9110A sintaxe está correta, mas os dados não passam nas regras de negócio.
Quando usar: Erro de validação de formulário — o mais usado em API REST moderna.
- 423
Locked
4xxRFC 4918O recurso está travado (WebDAV).
- 424
Failed Dependency
4xxRFC 4918A ação falhou porque uma requisição da qual ela dependia falhou (WebDAV).
- 425
Too Early
4xxRFC 8470O servidor não quer processar uma requisição que pode ser reenviada por engano.
- 426
Upgrade Required
4xxRFC 9110O servidor exige que o cliente troque de protocolo para continuar.
Quando usar: Forçar a migração de HTTP para HTTPS ou para WebSocket.
- 428
Precondition Required
4xxRFC 6585O servidor exige uma requisição condicional.
Quando usar: Para obrigar o uso de ETag e evitar sobrescrita cega.
- 429
Too Many Requests
4xxRFC 6585Limite de requisições estourado.
Quando usar: Rate limiting — devolva Retry-After dizendo quando tentar de novo.
- 431
Request Header Fields Too Large
4xxRFC 6585Os cabeçalhos passaram do tamanho aceito — quase sempre cookie grande demais.
- 451
Unavailable For Legal Reasons
4xxRFC 7725Bloqueado por ordem judicial ou exigência legal.
- 500
Internal Server Error
5xxRFC 9110Erro genérico: algo quebrou e o servidor não sabe classificar.
Quando usar: Exceção não tratada. Registre o log e não vaze o stack trace na resposta.
- 501
Not Implemented
5xxRFC 9110O servidor não sabe executar esse método.
- 502
Bad Gateway
5xxRFC 9110Um proxy recebeu resposta inválida do servidor de origem.
Quando usar: Aparece quando a aplicação atrás do nginx ou do load balancer caiu.
- 503
Service Unavailable
5xxRFC 9110O servidor está fora do ar temporariamente — manutenção ou sobrecarga.
Quando usar: Janela de deploy: devolva Retry-After para os clientes voltarem depois.
- 504
Gateway Timeout
5xxRFC 9110O proxy esperou tempo demais pela origem.
- 505
HTTP Version Not Supported
5xxRFC 9110A versão do protocolo usada não é aceita.
- 506
Variant Also Negotiates
5xxRFC 2295Erro de configuração: a negociação de conteúdo entrou em referência circular.
- 507
Insufficient Storage
5xxRFC 4918Falta espaço para concluir a operação (WebDAV).
- 508
Loop Detected
5xxRFC 5842O servidor detectou um laço infinito ao processar a requisição.
- 510
Not Extended
5xxRFC 2774A requisição precisa de uma extensão que o servidor exige e não recebeu.
- 511
Network Authentication Required
5xxRFC 6585É preciso autenticar na rede — o clássico portal de Wi-Fi de hotel.
As três confusões mais comuns
- 401 × 403 — 401 é “não sei quem você é” (falta autenticação); 403 é “sei quem você é e mesmo assim não pode”.
- 400 × 422 — 400 é payload malformado, que o servidor nem consegue interpretar; 422 é JSON perfeito com dados que não passam na regra de negócio.
- 302 × 307 — 302 pode transformar seu POST em GET no caminho; 307 preserva método e corpo. Para mudança definitiva com SEO, use 301.
Como usar esta ferramenta
- Busque pelo número (404) ou por uma palavra (cache, timeout, redirecionamento)
- Filtre por família: 1xx, 2xx, 3xx, 4xx ou 5xx
- Leia o “quando usar” para escolher o código certo na sua API
- Compare os pares que sempre confundem no bloco final
Sobre esta ferramenta
O que é
O status é a primeira linha da resposta HTTP e diz, em três dígitos, o que aconteceu com a requisição. A primeira casa define a família: 2xx deu certo, 3xx precisa de mais um passo, 4xx é erro de quem chamou e 5xx é falha do servidor.
Quando usar
- Escolher o código correto ao desenhar uma API REST
- Entender o erro que apareceu no log ou no navegador
- Decidir entre 301 e 302 numa mudança de URL, sem perder SEO
- Documentar as respostas possíveis de cada endpoint
Perguntas frequentes
- Qual a diferença entre 401 e 403?
- 401 significa que o servidor não sabe quem você é: falta autenticação ou o token expirou. 403 significa que ele sabe e mesmo assim recusa — é falta de permissão, e reenviar credencial não resolve.
- Devo usar 400 ou 422 para erro de validação?
- 400 é para requisição que o servidor não consegue nem interpretar: JSON quebrado, parâmetro faltando. 422 é para requisição bem formada cujos dados não passam na regra de negócio — é o mais adequado para erro de formulário.
- 301 ou 302 numa mudança de endereço?
- 301 quando a mudança é definitiva: ele transfere a autoridade de SEO para a nova URL e o navegador guarda em cache. 302 (ou melhor, 307) quando é temporária e você quer que o endereço antigo continue sendo consultado.
- O que significa 429?
- Limite de requisições excedido. A API está pedindo que você reduza o ritmo — respeite o cabeçalho Retry-After, que diz em quantos segundos vale tentar de novo.