DEV Community

Cover image for Códigos de Status HTTP: Uma Lista Completa com Explicações
Kauê Matos
Kauê Matos

Posted on

Códigos de Status HTTP: Uma Lista Completa com Explicações

Os códigos de status HTTP são respostas numéricas enviadas por servidores web para indicar o resultado de uma solicitação feita por um cliente, como um navegador ou aplicativo. Eles são divididos em cinco classes principais: 1xx (informativos), 2xx (sucesso), 3xx (redirecionamento), 4xx (erros do cliente) e 5xx (erros do servidor). Esses códigos são padronizados pela IETF e descritos em documentos como o RFC 9110, mas também incluem alguns não oficiais comuns usados por servidores específicos.

Neste artigo, apresentamos uma lista completa dos códigos de status HTTP oficiais, juntamente com explicações breves para cada um. Incluímos também códigos não oficiais populares, marcados como tal, para uma visão mais abrangente. A informação é baseada em fontes confiáveis como a Wikipédia.

1xx: Respostas Informativas

Esses códigos indicam que a solicitação foi recebida e o processo continua.

  • 100 Continue: O servidor recebeu os cabeçalhos da solicitação; o cliente deve prosseguir enviando o corpo do pedido, se houver.
  • 101 Switching Protocols: O servidor reconhece a mudança de protocolo solicitada.
  • 102 Processing (WebDAV): O servidor recebeu e está processando o pedido, mas ainda não há resposta disponível (RFC 2518).

2xx: Respostas de Sucesso

Esses códigos sinalizam que a solicitação foi processada com sucesso.

  • 200 OK: Resposta padrão para solicitações HTTP bem-sucedidas; a resposta depende do método usado (ex.: GET retorna o recurso solicitado).
  • 201 Created: O pedido resultou na criação de um novo recurso.
  • 202 Accepted: O pedido foi aceito para processamento, mas o tratamento não foi concluído.
  • 203 Non-Authoritative Information (desde HTTP/1.1): O servidor processou a solicitação, mas retorna informações de outra fonte.
  • 204 No Content: O servidor processou a solicitação com sucesso, mas não retorna conteúdo.
  • 205 Reset Content: O servidor processou a solicitação com sucesso, mas exige que o cliente redefina a exibição do documento.
  • 206 Partial Content: O servidor entrega apenas parte do recurso devido a um cabeçalho de intervalo enviado pelo cliente.

3xx: Respostas de Redirecionamento

Esses códigos informam que ações adicionais são necessárias para completar a solicitação, geralmente envolvendo redirecionamentos.

  • 300 Multiple Choices: Indica várias opções para o recurso que o cliente pode seguir.
  • 301 Moved Permanently: Todas as solicitações futuras devem ser direcionadas para o URL indicado.
  • 302 Found: Redirecionamento temporário, mas frequentemente usado como 303 por navegadores (contradiz norma).
  • 303 See Other: A resposta está em outro URI usando o método GET.
  • 304 Not Modified: O recurso não foi modificado desde o último pedido, poupando banda com cache.
  • 305 Use Proxy (desde HTTP/1.1): O recurso deve ser acessado via proxy (pouco suportado por clientes).
  • 306 Switch Proxy: Código obsoleto para mudança de proxy.
  • 307 Temporary Redirect (desde HTTP/1.1): O pedido deve ser repetido com outro URI, mantendo o método original.
  • 308 Permanent Redirect (RFC 7538): O recurso foi movido permanentemente, futuras requisições devem usar o novo URI.

4xx: Erros do Cliente

Esses códigos indicam que o erro ocorreu devido a algo no lado do cliente, como uma solicitação inválida.

  • 400 Bad Request: O pedido não pôde ser entregue devido a sintaxe incorreta.
  • 401 Unauthorized: Autenticação é necessária, mas não foi fornecida ou falhou. Deve incluir cabeçalho WWW-Authenticate.
  • 402 Payment Required: Reservado para uso futuro, inicialmente para esquemas de pagamento.
  • 403 Forbidden: O servidor reconhece o pedido, mas recusa executá-lo; autenticação não ajuda.
  • 404 Not Found: O recurso solicitado não foi encontrado, mas pode voltar no futuro.
  • 405 Method Not Allowed: O método de pedido usado não é compatível com o recurso.
  • 406 Not Acceptable: O recurso só gera conteúdo não aceitável pelos cabeçalhos Accept.
  • 407 Proxy Authentication Required: Acesso via proxy requer autenticação.
  • 408 Request Timeout: O cliente não enviou o pedido dentro do tempo esperado pelo servidor.
  • 409 Conflict: A solicitação não pôde ser processada devido a um conflito (ex.: edição simultânea).
  • 410 Gone: O recurso não está mais disponível e não voltará; deve ser removido de índices.
  • 411 Length Required: O pedido não especifica o comprimento do conteúdo, exigido pelo recurso.
  • 412 Precondition Failed: O servidor não cumpre uma condição definida na solicitação.
  • 413 Payload Too Large: A solicitação excede o tamanho que o servidor pode processar.
  • 414 URI Too Long: O URI fornecido é muito longo para ser processado.
  • 415 Unsupported Media Type: O tipo de mídia da entidade não é suportado pelo servidor.
  • 416 Range Not Satisfiable: O cliente pediu uma parte do arquivo que o servidor não pode fornecer.
  • 417 Expectation Failed: O servidor não pode cumprir as exigências do cabeçalho Expect.
  • 418 I'm a Teapot (não oficial): Código de brincadeira da IETF (RFC 2324), indicando que o servidor é um bule de chá.
  • 422 Unprocessable Entity (WebDAV): O pedido é bem formado, mas tem erros semânticos.
  • 423 Locked (WebDAV): O recurso acessado está bloqueado.
  • 424 Failed Dependency (WebDAV): A solicitação falhou devido a uma falha em uma solicitação anterior.
  • 425 Too Early: Indica que o servidor não está disposto a arriscar processar uma solicitação que pode ser repetida.
  • 426 Upgrade Required: O cliente deve mudar para outro protocolo.
  • 428 Precondition Required: O servidor requer que a solicitação seja condicional.
  • 429 Too Many Requests (não oficial, comum): O usuário enviou muitas solicitações em um curto período (limitação de taxa).
  • 431 Request Header Fields Too Large: Os campos de cabeçalho da solicitação são muito grandes.
  • 444 No Response (não oficial, Nginx): O servidor fecha a conexão sem resposta.
  • 449 Retry With (não oficial, Microsoft): O pedido deve ser repetido após ação apropriada.
  • 450 Blocked by Windows Parental Controls (não oficial, Microsoft): Bloqueado por controles parentais.
  • 451 Unavailable For Legal Reasons: Indisponível por razões legais.
  • 499 Client Closed Request (não oficial, Nginx): A conexão foi fechada pelo cliente durante o processamento.

5xx: Erros do Servidor

Esses códigos indicam que o erro ocorreu no lado do servidor, independentemente da solicitação do cliente.

  • 500 Internal Server Error: Erro genérico quando o servidor encontra uma condição inesperada.
  • 501 Not Implemented: O servidor não suporta a funcionalidade necessária para a solicitação.
  • 502 Bad Gateway: O servidor, atuando como gateway ou proxy, recebeu uma resposta inválida do servidor upstream.
  • 503 Service Unavailable: O servidor está temporariamente indisponível, geralmente por manutenção ou sobrecarga.
  • 504 Gateway Timeout: O servidor, como gateway ou proxy, não recebeu uma resposta oportuna do upstream.
  • 505 HTTP Version Not Supported: O servidor não suporta a versão do protocolo HTTP usada na solicitação.
  • 506 Variant Also Negotiates: Erro de configuração interna no servidor relacionado à negociação de conteúdo.
  • 507 Insufficient Storage (WebDAV): O servidor não tem armazenamento suficiente para completar a solicitação.
  • 508 Loop Detected (WebDAV): O servidor detectou um loop infinito ao processar a solicitação.
  • 510 Not Extended: Extensões adicionais à solicitação são necessárias para o servidor atendê-la.
  • 511 Network Authentication Required: O cliente precisa se autenticar para acessar a rede.

Conclusão

Entender os códigos de status HTTP é essencial para desenvolvedores web, administradores de sistemas e usuários avançados, pois eles ajudam a diagnosticar problemas em comunicações entre cliente e servidor. Para mais detalhes técnicos, consulte as RFCs oficiais da IETF ou documentações de servidores específicos.

Top comments (0)