Códigos de status HTTP
A referência completa dos códigos de status de resposta HTTP: o que cada código significa, quando os servidores o enviam e como reagir — para depurar requisições, documentar APIs e revisar logs de servidor.
Use os links de atalho para navegar entre as classes de resposta, ou abra os guias detalhados para os códigos mais comuns.
Tabela de códigos de resposta HTTP
| Code | Nome | Significado |
|---|---|---|
| 1xx Informativos | ||
| 100 | Continue | O servidor recebeu os cabeçalhos da requisição e o cliente deve enviar o corpo da requisição. |
| 101 | Switching Protocols | O servidor concorda em mudar para o protocolo solicitado no cabeçalho Upgrade. |
| 102 | Processing | O servidor aceitou a requisição completa mas ainda não a concluiu (WebDAV). |
| 103 | Early Hints | Cabeçalhos preliminares, principalmente dicas de Link preload, enviados antes da resposta final. |
| 2xx Sucesso | ||
| 200 | OK | A requisição teve sucesso e a resposta traz a representação solicitada. |
| 201 | Created | A requisição teve sucesso e um novo recurso foi criado, geralmente nomeado em Location. |
| 202 | Accepted | A requisição foi aceita para processamento assíncrono que ainda não terminou. |
| 203 | Non-Authoritative Information | A resposta foi modificada por um proxy transformador no caminho. |
| 204 | No Content | A requisição teve sucesso e propositalmente não há corpo de resposta. |
| 205 | Redefinir Content | A requisição teve sucesso e o cliente deve redefinir a visualização do documento ou formulário. |
| 206 | Partial Content | A resposta entrega apenas o intervalo de bytes solicitado com o cabeçalho Range. |
| 3xx Redirecionamento | ||
| 300 | Multiple Choices | Várias representações existem e o cliente deve escolher uma delas. |
| 301 | Moved Permanently | O recurso tem uma nova URL permanente e os links devem ser atualizados. |
| 302 | Found | O recurso vive temporariamente numa URL diferente; continue usando a original. |
| 303 | See Other | O resultado está disponível em outra URL e deve ser buscado com GET. |
| 304 | Not Modified | A cópia em cache ainda é válida, então nenhum corpo é enviado novamente. |
| 307 | Temporary Redirect | Redirecionamento temporário que deve manter o método HTTP e o corpo originais. |
| 308 | Permanent Redirect | Redirecionamento permanente que deve manter o método HTTP e o corpo originais. |
| 4xx Erros do Cliente | ||
| 400 | Bad Request | O servidor não consegue processar a requisição porque ela está malformada. |
| 401 | Unauthorized | Credenciais de autenticação válidas são necessárias e estão ausentes ou incorretas. |
| 402 | Payment Required | Status reservado, usado na prática por algumas APIs para limites de cobrança. |
| 403 | Forbidden | O servidor compreendeu a requisição mas se recusa a autorizá-la. |
| 404 | Not Found | Nenhum recurso existe na URL solicitada. |
| 405 | Method Not Allowed | A URL existe mas não suporta este método HTTP. |
| 406 | Not Acceptable | Nenhuma representação corresponde aos cabeçalhos de negociação Accept. |
| 407 | Proxy Authentication Required | O cliente deve se autenticar com o proxy primeiro. |
| 408 | Request Timeout | O servidor encerrou a conexão porque a requisição demorou demais para chegar. |
| 409 | Conflict | A requisição entra em conflito com o estado atual do recurso, por exemplo uma colisão de edição. |
| 410 | Gone | O recurso foi removido deliberadamente e não vai retornar. |
| 411 | Length Required | A requisição deve incluir um cabeçalho Content-Length. |
| 412 | Precondition Failed | Um cabeçalho condicional como If-Match foi avaliado como falso. |
| 413 | Content Too Large | O corpo da requisição excede o tamanho que o servidor aceita. |
| 414 | URI Too Long | A URL da requisição é mais longa do que o servidor vai analisar. |
| 415 | Unsupported Media Type | O formato do corpo da requisição não é suportado para este recurso. |
| 416 | Range Not Satisfiable | O intervalo de bytes solicitado está fora do tamanho do recurso. |
| 417 | Expectation Failed | O cabeçalho de requisição Expect não pôde ser atendido. |
| 418 | I'm a teapot | Um status de primeiro de abril do RFC 2324; algumas APIs o usam como easter egg. |
| 421 | Misdirected Request | A requisição chegou a um servidor que não pode produzir uma resposta para esta autoridade. |
| 422 | Unprocessable Content | A requisição está bem formada mas é semanticamente inválida, comum em validação REST. |
| 425 | Too Early | O servidor se recusa a processar uma requisição que pode ser reproduzida (TLS early data). |
| 426 | Upgrade Required | O cliente deve mudar para um protocolo diferente, conforme listado em Upgrade. |
| 428 | Precondition Required | O servidor exige uma requisição condicional para evitar atualizações perdidas. |
| 429 | Too Many Requests | O cliente excedeu um limite de requisições; Retry-After indica quando tentar novamente. |
| 431 | Request Header Fields Too Large | Cabeçalhos, frequentemente cookies, excedem os limites de tamanho do servidor. |
| 451 | Unavailable For Legal Reasons | O acesso está bloqueado por razões legais, como ordens judiciais. |
| 5xx Erros do Servidor | ||
| 500 | Internal Server Error | O servidor encontrou um erro inesperado ao processar a requisição. |
| 501 | Not Implemented | O servidor não reconhece ou não suporta o método de requisição. |
| 502 | Bad Gateway | Um gateway ou proxy recebeu uma resposta inválida do servidor upstream. |
| 503 | Service Unavailable | O servidor está temporariamente incapaz de atender, devido a sobrecarga ou manutenção. |
| 504 | Gateway Timeout | Um gateway ou proxy desistiu de esperar pelo servidor upstream. |
| 505 | HTTP Version Not Supported | O servidor não suporta a versão do protocolo HTTP usada. |
| 506 | Variant Also Negotiates | Uma configuração incorreta de negociação de conteúdo no servidor. |
| 507 | Insufficient Storage | O servidor não consegue armazenar o que precisa para completar a requisição (WebDAV). |
| 508 | Loop Detected | O servidor detectou um loop infinito durante o processamento (WebDAV). |
| 510 | Not Extended | A requisição precisa de extensões adicionais que não foram fornecidas. |
| 511 | Network Authentication Required | A rede (por exemplo, um portal cativo) exige autenticação primeiro. |
1xx Informativos
Respostas informativas confirmam que a requisição foi recebida e o cliente pode continuar. São interinas: um status final sempre segue. A que você realmente vai encontrar na prática é o 103 Early Hints, que permite que servidores enviem dicas de preload antes que a resposta completa esteja pronta.
2xx Sucesso
Respostas de sucesso significam que a requisição foi compreendida e aceita. 200 OK traz o resultado no corpo, 201 Created anuncia um novo recurso, e 204 No Content confirma sucesso com propositalmente nada a retornar.
3xx Redirecionamento
Respostas de redirecionamento apontam o cliente para outro lugar. A distinção chave é a permanência — 301/308 são permanentes, 302/307 temporários — e se o método HTTP deve ser preservado (307/308) ou pode mudar para GET (301/302). 304 Not Modified é o caso especial que viabiliza o cache do navegador.
4xx Erros do Cliente
Erros de cliente significam que a própria requisição foi rejeitada. Os mais comuns no dia a dia: 400 requisição malformada, 401 autenticação necessária, 403 acesso recusado, 404 nada nessa URL e 429 limite de requisições excedido.
5xx Erros do Servidor
Erros de servidor significam que o servidor falhou numa requisição que pode ter sido perfeitamente válida. 500 é uma falha na aplicação, 502 e 504 são proxies relatando um upstream quebrado ou silencioso, e 503 é indisponibilidade deliberada e temporária.
Como ler um código de status
O primeiro dígito é a classe: 1xx informativo, 2xx sucesso, 3xx redirecionamento, 4xx erro de cliente, 5xx erro de servidor. Um cliente que encontra um código desconhecido pode, com segurança, tratá-lo como o código x00 da sua classe — é assim que novos códigos mantêm compatibilidade retroativa. Ao depurar, sempre observe os cabeçalhos de resposta ao lado do código: Location explica redirecionamentos, Allow explica o 405, Retry-After explica o 429 e o 503.
Exemplos
200 OK — page served normally 301 Moved Permanently — URL changed for good, follow Location 304 Not Modified — your cached copy is still valid 404 Not Found — nothing exists at this URL 429 Too Many Requests — rate limit hit, wait Retry-After seconds 503 Service Unavailable — temporary downtime or maintenance
Perguntas frequentes
O que é HTTP 404?
HTTP 404 significa que o recurso solicitado não pôde ser encontrado na URL especificada. Veja o guia detalhado do 404 para causas, correções e impacto no SEO.
Qual é a diferença entre 301 e 302?
Um redirecionamento 301 é permanente — links e mecanismos de busca devem atualizar para a nova URL. Um 302 sinaliza uma mudança temporária em que a URL original permanece canônica.
O que significa 503?
HTTP 503 significa que o serviço está temporariamente indisponível, geralmente por manutenção ou sobrecarga, e o cliente deve tentar novamente após um intervalo.
Qual é a diferença entre 401 e 403?
401 significa que o servidor precisa de credenciais de autenticação válidas. 403 significa que ele sabe quem você é e ainda assim recusa o acesso — fazer login novamente não vai ajudar.
Qual é a diferença entre 502 e 504?
Ambos vêm de um proxy conversando com um servidor upstream: 502 significa que o upstream devolveu uma resposta inválida, 504 significa que ele nunca respondeu dentro do tempo limite.
Quais códigos de status importam mais para SEO?
200 marca páginas indexáveis, 301/308 transferem rankings em mudanças permanentes, 404/410 removem URLs mortas e 503 protege rankings durante indisponibilidade quando servido com Retry-After.