Status HTTP: Tudo sobre os 33 códigos HTTP

Como você já pode ver, toda página que acessamos na internet inicia com o texto “HTTP”. O HTTP (Hypertext Transfer Protocol) é o protocolo responsável por fazer a comunicação entre o cliente e o servidor. Dessa forma, a cada solicitação feita ao servidor web, o HTTP responde se você obteve sucesso, ou se há algum erro na página ou no servidor. Estas mensagens de erro são os “status HTTP”, também conhecidas como Status code HTTP. Por exemplo, os erros de HTTP mais comuns são o 404, 500 e 403.

Como o servidor web retorna o codigo de status (http status code) ao cliente.

Todo acesso a uma página web retorna um código de status HTTP (ou HTTP status code). O código padrão mais frequente é o 200, que indica sucesso.

Dessa forma, para que o navegador possa se comunicar com o servidor corretamente, existem os códigos de resposta HTTP. Por exemplo, eles mostram o status do HTTP, a resposta para sua solicitação.

As Classes de Status HTTP

Como existem várias respostas que o servidor pode dar para alguém que acessa uma página na web, há classes de status, que são divisões do que cada resposta representa. Em seguida, elas costumam vir acompanhadas de mais dois números para especificar ainda melhor o que cada código significa.

Classes de status HTTP: 100 informativo, 200 OK Sucesso, 300 Redirecionamento, 400 erro do cliente e 500 Erro de servidor.

Classe de status 1XX – Informativa

Simplesmente indica que o servidor recebeu a solicitação, e está pronto para dar continuidade ao processo. Portanto, não representam um erro.

Os códigos mais comuns dessa classe são:

Código O que significa
100
Continue
Resposta provisória que indica que o servidor recebeu os cabeçalhos da solicitação e aguarda o restante. É usada em solicitações POST para o cliente enviar o corpo em etapas, evitando transmitir dados desnecessários.
101
Switching Protocols
Indica que o servidor está mudando para um protocolo diferente, conforme solicitado pelo cliente. É comum em conexões WebSocket, onde o servidor responde com 101 para estabelecer uma conexão bidirecional persistente entre cliente e servidor.

Classe de status 2XX – Sucesso

Essa classe indica que o servidor recebeu a solicitação. Além disso, o servidor entendeu e que será
processada com êxito. Assim, são as respostas http para sucesso. Ou seja, tudo correu bem na transação.

Por exemplo, os códigos mais comuns dessa classe são:

Código O que significa
200
OK
A solicitação foi bem-sucedida e a resposta contém o conteúdo solicitado. É o código mais comum: indica que a comunicação entre cliente e servidor ocorreu sem problemas e o conteúdo foi entregue.
201
Created
O servidor processou a solicitação e criou um novo recurso. Comum em operações POST, PUT ou PATCH. A resposta costuma incluir informações sobre o recurso recém-criado, como sua localização ou um identificador único.
202
Accepted
O servidor aceitou a solicitação para processamento, mas ainda não a concluiu. Usado quando o processamento é demorado ou assíncrono. A resposta pode incluir informações sobre o status ou o progresso.
203
Non-Authoritative Information
A resposta não é a versão definitiva da informação — pode vir de uma cópia em cache ou de um servidor intermediário sem a fonte original. Comum em operações de cache, quando se retorna a resposta armazenada em vez de consultar a fonte.

Os códigos de resposta HTTP 200 menos frequentes

Código O que significa
204
No Content
A solicitação foi concluída com sucesso, mas não há conteúdo a retornar. Comum em operações POST, PUT ou DELETE em que o cliente não precisa de uma representação atualizada do recurso — o servidor envia apenas o cabeçalho, sem corpo.
205
Reset Content
Instrui o cliente a redefinir a exibição do documento. Usado em formulários: após um POST, o servidor responde com 205 para o cliente limpar o formulário, evitando o reenvio acidental dos mesmos dados ao atualizar a página.
206
Partial Content
A resposta contém apenas parte do conteúdo solicitado. Ocorre quando a solicitação inclui um cabeçalho de intervalo (Range) pedindo uma faixa específica de bytes; o servidor retorna só essa parte, com o cabeçalho Content-Range indicando o intervalo.
207
Multi-Status
Indica uma resposta com informações sobre vários recursos, e não apenas um. Comum em solicitações WebDAV, onde a resposta pode detalhar vários arquivos ou diretórios — cada recurso com seu próprio status e metadados.

Classe de status HTTP 3XX – Redirecionamento

Ele indica que haverá um redirecionamento para outra página. Isso acontece, por exemplo, quando a URL que você pesquisou sofreu alterações, mas o administrador do site te redireciona para a página atual. Dessa forma, surgem os erros 3XX.

Por exemplo, os códigos mais comuns dessa classe são:

Código O que significa
300
Multiple Choices
Existem várias opções disponíveis para a solicitação e o servidor não consegue determinar qual retornar. Ele inclui uma lista de opções no corpo da resposta para o cliente escolher e enviar uma nova solicitação. É um caso de redirecionamento negociado.
301
Moved Permanently
O recurso foi movido permanentemente para uma nova localização. A URL original não é mais válida e o cliente deve atualizar seus links para a nova URL. Os mecanismos de busca também atualizam seus índices. Veja como aplicar na prática em nosso guia de redirecionamento HTML.

Códigos 300 menos usados

Código O que significa
302
Found
O recurso foi movido temporariamente para outra localização. A solicitação foi bem-sucedida, mas o recurso está disponível em outro lugar por ora; o cliente deve usar a nova URL fornecida para acessá-lo.
303
See Other
Semelhante ao 302, mas indica explicitamente que o cliente deve usar o método GET para recuperar a resposta. Útil quando uma solicitação POST resulta numa resposta que o cliente deve acessar por um GET separado.
304
Not Modified
Em uma solicitação GET condicional, indica que o recurso não mudou desde a última vez. O servidor avisa que a versão em cache ainda é válida, evitando reenviar o recurso completo desnecessariamente.
305
Use Proxy
Pouco usado atualmente. Informa ao cliente que ele deve encaminhar a solicitação a um servidor proxy, usando a URL fornecida na resposta.
307
Temporary Redirect
Semelhante ao 302, mas indica explicitamente que o cliente deve preservar o método original ao acessar a nova localização temporária. Útil quando o cliente usava POST e precisa seguir o redirecionamento com o mesmo POST.

Classe de status 4XX – Erro do cliente

Esse status indica que o servidor não conseguiu processar a solicitação porque o cliente a fez de forma errada ou que não dependa dele, como por exemplo uma página excluída.

Por exemplo, os códigos mais comuns dessa classe são:

Código O que significa
400
Bad Request
O servidor não consegue entender ou processar a solicitação por sintaxe incorreta, parâmetros inválidos ou dados malformados. A solicitação precisa ser corrigida antes que o servidor possa atendê-la. Veja como resolver o erro 400.
401
Unauthorized
O cliente tenta acessar um recurso protegido sem credenciais válidas. A solicitação requer autenticação — o cliente precisa fornecer login e senha corretos. Veja como resolver o erro 401.
402
Payment Required
Código reservado que sinaliza que o recurso requer pagamento. Faz parte das especificações HTTP, mas é pouco usado na prática — apareceria em conteúdos ou serviços que exigem assinatura paga.
403
Forbidden
O servidor entendeu a solicitação, mas se recusa a dar acesso ao recurso — por permissões inadequadas, restrições de IP ou políticas de segurança. Veja como resolver o erro 403 Forbidden.
404
Not Found
A página ou recurso solicitado não existe naquele endereço. É um dos erros mais comuns da web, causado por link quebrado, página removida ou URL digitada errada. Veja como resolver o erro 404 Not Found.
405
Method Not Allowed
O servidor reconhece o método usado (GET, POST, PUT, DELETE) mas não o permite para aquela URL. Ocorre quando há incompatibilidade entre o método enviado e as permissões do servidor. O cabeçalho da resposta indica quais métodos são aceitos.
406
Not Acceptable
O servidor não consegue fornecer o recurso num formato que atenda aos critérios do cliente (definidos no cabeçalho Accept). Acontece, por exemplo, quando o cliente pede um formato de arquivo ou idioma que o servidor não suporta.
407
Proxy Authentication Required
Semelhante ao 401, mas a autenticação é exigida pelo servidor proxy usado na comunicação. A resposta inclui o cabeçalho Proxy-Authenticate; o cliente deve fornecer as credenciais para continuar.
408
Request Timeout
O servidor encerrou a conexão porque o cliente demorou demais para enviar a solicitação. Costuma ocorrer por inatividade prolongada; vale verificar problemas de conexão ou atrasos de rede antes de tentar de novo.
409
Conflict
A solicitação entra em conflito com o estado atual do servidor — por exemplo, duas solicitações tentando modificar o mesmo recurso ao mesmo tempo. A resposta detalha o conflito para o cliente ajustar a solicitação ou tentar mais tarde.

Classe de status HTTP 5XX – Erro do servidor

Esse status indica que, devido a um erro do servidor, ele não conseguiu atender a sua solicitação. Na maioria das vezes está relacionada a permissões dos arquivos ou pastas de software.

Os códigos mais comuns dessa classe são:

Código O que significa
500
Internal Server Error
Ocorreu um erro interno no servidor ao processar a solicitação — uma falha de software, configuração incorreta ou erro genérico que o servidor não consegue especificar. O cliente pouco pode fazer além de relatar ao administrador. Veja como resolver o erro 500.
501
Not Implemented
O servidor não suporta ou não reconhece a funcionalidade solicitada — geralmente o método HTTP necessário não foi implementado. Pode ser limitação de configuração, restrição de segurança ou falta de suporte àquela funcionalidade.
502
Bad Gateway
Um servidor atuando como gateway ou proxy recebeu uma resposta inválida do servidor upstream. Costuma ser problema de comunicação entre servidores. Veja como resolver o erro 502 Bad Gateway.
503
Service Unavailable
O servidor está temporariamente indisponível — sobrecarregado, em manutenção ou com um problema passageiro. A resposta costuma informar a natureza do problema e o tempo estimado de recuperação. Veja como resolver o erro 503.
504
Gateway Timeout
Semelhante ao 502, mas o servidor intermediário não obteve resposta dentro do tempo limite. Ocorre quando o servidor upstream demora demais ou há congestionamento de rede. Veja como resolver o erro 504 Gateway Timeout.
505
HTTP Version Not Supported
O servidor não suporta a versão do protocolo usada na solicitação. Acontece quando o cliente usa uma versão de HTTP que o servidor não reconhece. É menos comum, ligado a incompatibilidade de versões entre cliente e servidor. Relacionado ao protocolo HTTPS.

Os top 10 status codes HTTP são:

200 OK
201 Criado
204 Nenhum conteúdo
304 Não modificado
400 Requisição inválida
401 Não autorizado
403 Proibido
404 Não encontrado
409 Conflito
500 Erro interno do servidor

Conclusão

Toda conexão do navegador com o servidor HTTP gera um código de resposta. Tanto de sucesso como de falha. Por exemplo, os códigos de status HTTP funcionam como se fossem placas de trânsito. Pare, Siga, Vire a direita… Quando acessamos um site corretamente, há uma resposta com o código 200 (Sucesso). Se o servidor não encontrar uma página, ele exibirá o código de erro 404 Erro 404 (Não Encontrado).

Quando uma página mudou de endereço, o HTTP envia o código 301 (Redirecionamento permanente). Ou então, um erro muito comum é o Erro 401, que mostra uma falha de autenticação. Ainda assim, existem diversos outros códigos de resposta, menos usados, que representam os status do HTTP. Por fim, agora que você sabe o que cada número inicial indica, fica muito mais fácil identificá-los.  Mas, se ficar com alguma dúvida, pode contar a gente aqui do HomeHost!

Perguntas frequentes

Quando houve a implantação dos HTTP status codes?

O protocolo HTTP definiu os códigos de status HTTP pela primeira vez em 1992, com a introdução da versão HTTP/1.0 no RFC 2616. Desde então, clientes (como navegadores da web) e servidores web têm usado esses códigos amplamente para indicar o resultado de uma solicitação.

Desde o início, definiram-se alguns dos códigos de status mais comuns, como o 200 OK e o 404 Not Found, e eles permanecem em uso amplo até hoje. O código 200 OK indica que a solicitação foi bem-sucedida, enquanto o código 404 Not Found se aplica quando o recurso solicitado não se encontra no servidor.

Com o passar do tempo, houve adição de novos códigos de status para lidar com diferentes cenários e requisitos de comunicação na web. Por exemplo, os códigos de redirecionamento, como o 301 Moved Permanently e o 302 Found, surgiram para permitir que os servidores redirecionassem os clientes para outras URLs.

É importante destacar que a especificação do protocolo HTTP continua evoluindo, com novas versões sendo lançadas periodicamente para melhorar a eficiência, segurança e funcionalidades da comunicação web.

O que significa o codigo HTTP 200?

Quando um navegador da web recebe uma resposta com o código 200, ele conclui que a operação teve sucesso e exibe o conteúdo da página normalmente.

Geralmente, usamos o código 200 OK para responder a solicitações GET, onde o cliente solicita um recurso específico, como uma página da web, e o servidor retorna o conteúdo dessa página. Ele também serve para outros tipos de solicitação, como POST, PUT ou DELETE, dependendo do contexto.

Em resumo, o código de status HTTP 200 confirma uma resposta bem-sucedida do servidor, indica que o servidor processou a solicitação com sucesso e está retornando o conteúdo solicitado ao cliente.

Este artigo foi útil?

Obrigado pela resposta!
Picture of Gustavo Gallas

Gustavo Gallas

Analista de sistemas, formado pela PUC-Rio. Programador, gestor de redes e diretor da empresa Homehost. Pai do Bóris, seu pet de estimação. Gosta de rock'n'roll, cerveja artesanal e de escrever sobre assuntos técnicos.

Contato: gustavo.blog@homehost.com.br

Ganhe 30% OFF

Indique seu nome e e-mail,e ganhe um cupom de desconto de 30% para sempre na Homehost!