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

Todos
1xx Informacional
2xx Sucesso
3xx Redirecionamento
4xx Erro Cliente
5xx Erro Servidor

32 códigos encontrados

100
Continue

O servidor recebeu os cabeçalhos da solicitação e o cliente deve prosseguir com o corpo da solicitação.

101
Switching Protocols

O servidor está mudando os protocolos conforme solicitado pelo cliente.

102
Processing

O servidor recebeu e está processando a solicitação, mas ainda não há resposta disponível.

200
OK

A solicitação foi bem-sucedida. O significado depende do método HTTP usado.

201
Created

A solicitação foi bem-sucedida e um novo recurso foi criado como resultado.

202
Accepted

A solicitação foi aceita para processamento, mas o processamento não foi concluído.

204
No Content

A solicitação foi bem-sucedida, mas não há conteúdo para enviar na resposta.

206
Partial Content

O servidor está entregando apenas parte do recurso devido a um cabeçalho de intervalo enviado pelo cliente.

301
Moved Permanently

O recurso solicitado foi movido permanentemente para uma nova URL.

302
Found

O recurso solicitado está temporariamente localizado em uma URL diferente.

304
Not Modified

O recurso não foi modificado desde a última solicitação. O cliente pode usar a versão em cache.

307
Temporary Redirect

Redirecionamento temporário, mantendo o método HTTP original.

308
Permanent Redirect

Redirecionamento permanente, mantendo o método HTTP original.

400
Bad Request

O servidor não pode processar a solicitação devido a erro do cliente (sintaxe inválida, por exemplo).

401
Unauthorized

A solicitação requer autenticação do usuário.

403
Forbidden

O servidor entendeu a solicitação, mas se recusa a autorizá-la.

404
Not Found

O servidor não conseguiu encontrar o recurso solicitado.

405
Method Not Allowed

O método HTTP usado não é permitido para este recurso.

408
Request Timeout

O servidor expirou aguardando a solicitação.

409
Conflict

A solicitação não pôde ser concluída devido a um conflito com o estado atual do recurso.

410
Gone

O recurso solicitado não está mais disponível e não estará disponível novamente.

413
Payload Too Large

A solicitação é maior do que o servidor está disposto ou capaz de processar.

414
URI Too Long

A URI fornecida era muito longa para o servidor processar.

415
Unsupported Media Type

O formato de mídia dos dados solicitados não é suportado pelo servidor.

422
Unprocessable Entity

A solicitação estava bem formada, mas não pôde ser seguida devido a erros semânticos.

429
Too Many Requests

O usuário enviou muitas solicitações em um determinado período de tempo.

500
Internal Server Error

O servidor encontrou uma condição inesperada que o impediu de atender à solicitação.

501
Not Implemented

O servidor não reconhece o método da solicitação ou não tem a capacidade de atender à solicitação.

502
Bad Gateway

O servidor, ao atuar como gateway ou proxy, recebeu uma resposta inválida do servidor upstream.

503
Service Unavailable

O servidor não está pronto para lidar com a solicitação, geralmente devido a manutenção ou sobrecarga.

504
Gateway Timeout

O servidor, ao atuar como gateway ou proxy, não recebeu uma resposta em tempo hábil do servidor upstream.

505
HTTP Version Not Supported

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

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.