Consulta de Códigos de Status HTTP - Referência Completa
Referência completa e pesquisável de códigos de status HTTP. Entenda o significado de cada código (200, 404, 500, etc.) e quando usá-los em suas APIs e aplicações web.
Consulta de Códigos HTTP
32 códigos encontrados
100
O servidor recebeu os cabeçalhos da solicitação e o cliente deve prosseguir com o corpo da solicitação.
101
O servidor está mudando os protocolos conforme solicitado pelo cliente.
102
O servidor recebeu e está processando a solicitação, mas ainda não há resposta disponível.
200
A solicitação foi bem-sucedida. O significado depende do método HTTP usado.
201
A solicitação foi bem-sucedida e um novo recurso foi criado como resultado.
202
A solicitação foi aceita para processamento, mas o processamento não foi concluído.
204
A solicitação foi bem-sucedida, mas não há conteúdo para enviar na resposta.
206
O servidor está entregando apenas parte do recurso devido a um cabeçalho de intervalo enviado pelo cliente.
301
O recurso solicitado foi movido permanentemente para uma nova URL.
302
O recurso solicitado está temporariamente localizado em uma URL diferente.
304
O recurso não foi modificado desde a última solicitação. O cliente pode usar a versão em cache.
307
Redirecionamento temporário, mantendo o método HTTP original.
308
Redirecionamento permanente, mantendo o método HTTP original.
400
O servidor não pode processar a solicitação devido a erro do cliente (sintaxe inválida, por exemplo).
401
A solicitação requer autenticação do usuário.
403
O servidor entendeu a solicitação, mas se recusa a autorizá-la.
404
O servidor não conseguiu encontrar o recurso solicitado.
405
O método HTTP usado não é permitido para este recurso.
408
O servidor expirou aguardando a solicitação.
409
A solicitação não pôde ser concluída devido a um conflito com o estado atual do recurso.
410
O recurso solicitado não está mais disponível e não estará disponível novamente.
413
A solicitação é maior do que o servidor está disposto ou capaz de processar.
414
A URI fornecida era muito longa para o servidor processar.
415
O formato de mídia dos dados solicitados não é suportado pelo servidor.
422
A solicitação estava bem formada, mas não pôde ser seguida devido a erros semânticos.
429
O usuário enviou muitas solicitações em um determinado período de tempo.
500
O servidor encontrou uma condição inesperada que o impediu de atender à solicitação.
501
O servidor não reconhece o método da solicitação ou não tem a capacidade de atender à solicitação.
502
O servidor, ao atuar como gateway ou proxy, recebeu uma resposta inválida do servidor upstream.
503
O servidor não está pronto para lidar com a solicitação, geralmente devido a manutenção ou sobrecarga.
504
O servidor, ao atuar como gateway ou proxy, não recebeu uma resposta em tempo hábil do servidor upstream.
505
A versão HTTP usada na solicitação não é suportada pelo servidor.
📚 Sobre Códigos de Status HTTP
- 1xx (Informacional): A solicitação foi recebida, processo continua
- 2xx (Sucesso): A solicitação foi recebida, compreendida e aceita com sucesso
- 3xx (Redirecionamento): Ação adicional deve ser tomada para completar a solicitação
- 4xx (Erro do Cliente): A solicitação contém sintaxe incorreta ou não pode ser atendida
- 5xx (Erro do Servidor): O servidor falhou ao atender uma solicitação aparentemente válida
O que são Códigos de Status HTTP?
Códigos de status HTTP são respostas padronizadas que os servidores web enviam aos clientes para indicar o resultado de uma solicitação. Eles são divididos em cinco categorias, cada uma indicada pelo primeiro dígito do código de três dígitos.
Categorias de Códigos HTTP
1xx - Informacional (Informational)
A solicitação foi recebida e o processo continua. Raramente vistos pelos usuários finais. Geralmente usado em conexões HTTP/2 e WebSocket.
Exemplos: 100 Continue, 101 Switching Protocols
2xx - Sucesso (Success)
A solicitação foi recebida, compreendida e aceita com sucesso. Indica que a ação foi realizada conforme esperado.
Exemplos: 200 OK, 201 Created, 204 No Content
3xx - Redirecionamento (Redirection)
Ação adicional deve ser tomada para completar a solicitação. O recurso foi movido ou está temporariamente disponível em outro local.
Exemplos: 301 Moved Permanently, 302 Found, 304 Not Modified
4xx - Erro do Cliente (Client Error)
A solicitação contém sintaxe incorreta ou não pode ser atendida. O erro está do lado do cliente (navegador, app, etc.).
Exemplos: 400 Bad Request, 401 Unauthorized, 404 Not Found
5xx - Erro do Servidor (Server Error)
O servidor falhou ao atender uma solicitação aparentemente válida. O erro está do lado do servidor.
Exemplos: 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable
Códigos Mais Comuns
✅ Sucesso
- 200 OK: Tudo certo, resposta padrão
- 201 Created: Recurso criado com sucesso
- 204 No Content: Sucesso, mas sem conteúdo
🔄 Redirecionamento
- 301: Movido permanentemente
- 302: Encontrado (temporário)
- 304: Não modificado (cache)
❌ Erro do Cliente
- 400: Requisição inválida
- 401: Não autenticado
- 403: Proibido/sem permissão
- 404: Não encontrado
💥 Erro do Servidor
- 500: Erro interno do servidor
- 502: Bad Gateway
- 503: Serviço indisponível
Quando Usar Cada Código em APIs REST
GET (Buscar recursos)
- • 200 OK: Recurso encontrado e retornado
- • 404 Not Found: Recurso não existe
- • 304 Not Modified: Usar cache (com ETag)
POST (Criar recursos)
- • 201 Created: Recurso criado com sucesso
- • 400 Bad Request: Dados inválidos
- • 409 Conflict: Conflito (ex: email já existe)
PUT/PATCH (Atualizar recursos)
- • 200 OK: Atualizado e retorna o recurso
- • 204 No Content: Atualizado sem retornar dados
- • 404 Not Found: Recurso não existe
DELETE (Remover recursos)
- • 204 No Content: Removido com sucesso
- • 200 OK: Removido e retorna informação
- • 404 Not Found: Recurso não existe
Diferenças Importantes
401 vs 403
- 401 Unauthorized: "Quem é você? Por favor, faça login." (falta autenticação)
- 403 Forbidden: "Eu sei quem você é, mas você não tem permissão." (sem autorização)
301 vs 302
- 301 Moved Permanently: O recurso mudou para sempre. Atualize seus links. SEO transfere ranking.
- 302 Found: Redirecionamento temporário. Mantenha o link original. SEO não transfere ranking.
500 vs 502 vs 503
- 500 Internal Server Error: Erro genérico do servidor (bug no código, exceção não tratada)
- 502 Bad Gateway: Servidor intermediário recebeu resposta inválida (proxy/load balancer)
- 503 Service Unavailable: Servidor temporariamente indisponível (manutenção, sobrecarga)
Melhores Práticas para APIs
- Seja consistente: Use os mesmos códigos para situações similares
- Use códigos específicos: Não use apenas 200 e 500 para tudo
- Inclua mensagens: O código sozinho pode não ser claro, adicione mensagem explicativa
- Documente: Especifique quais códigos sua API pode retornar em cada endpoint
- Errors com detalhes: Retorne JSON com erro, mensagem e sugestão de correção
- 4xx vs 5xx: Diferencie claramente erros do cliente dos erros do servidor
- Rate limiting: Use 429 Too Many Requests quando apropriado
Exemplo de Resposta de Erro Bem Estruturada
{
"status": 400,
"error": "Bad Request",
"message": "Email inválido",
"details": {
"field": "email",
"value": "usuario@",
"issue": "Formato de email inválido"
},
"timestamp": "2024-01-17T10:30:00Z",
"path": "/api/users"
} Códigos Menos Conhecidos Mas Úteis
202 Accepted
Requisição aceita mas ainda sendo processada (útil para processamento assíncrono, jobs)
206 Partial Content
Parte do recurso retornada (usado em resumable uploads, streaming de vídeo)
410 Gone
Recurso existia mas foi removido permanentemente (melhor que 404 para recursos deletados)
422 Unprocessable Entity
Requisição bem formada mas com erros semânticos (validação de negócio falhou)
429 Too Many Requests
Rate limit excedido (inclua header Retry-After indicando quando tentar novamente)
451 Unavailable For Legal Reasons
Conteúdo bloqueado por razões legais (censura, DMCA, etc.)
Testando Códigos HTTP
Usando curl:
# Ver apenas o status code
curl -I -s -o /dev/null -w "%{http_code}" https://exemplo.com
# Ver headers completos
curl -I https://exemplo.com
# Fazer POST e ver resposta
curl -X POST https://api.exemplo.com/users -d '{"name":"João"}' -H "Content-Type: application/json" -v Usando JavaScript (fetch):
fetch('https://api.exemplo.com/users')
.then(response => {
console.log('Status:', response.status);
console.log('Status Text:', response.statusText);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.json();
})
.then(data => console.log(data))
.catch(error => console.error('Error:', error)); Perguntas Frequentes
Por que recebo 304 em vez de 200?
304 Not Modified significa que o recurso não mudou desde a última requisição. O navegador está usando a versão em cache. Isso é bom para performance! Quer forçar 200? Faça hard refresh (Ctrl+Shift+R) ou desabilite cache nas DevTools.
Posso criar meus próprios códigos HTTP?
Tecnicamente sim, mas NÃO FAÇA ISSO. Use os códigos padronizados. Se nenhum se encaixa perfeitamente, use o mais próximo e adicione detalhes no corpo da resposta. Códigos customizados quebram caches, proxies e frameworks.
O que fazer quando vejo 502/503 constantemente?
502 geralmente indica problema com proxy/load balancer ou servidor backend. 503 indica sobrecarga ou manutenção. Se você é o desenvolvedor, verifique logs do servidor. Se é usuário, aguarde alguns minutos ou contate o suporte.