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:

  • 100 Continuar – O código de status HTTP 100 Continue é uma resposta provisória que indica que o servidor recebeu com sucesso os cabeçalhos da solicitação e está aguardando a conclusão da solicitação. O servidor usa em solicitações POST para permitir que o cliente envie o corpo da solicitação em etapas, evitando enviar dados desnecessários.
  • 101 Mudando protocolos – O servidor emite o código de status HTTP 101 Switching Protocols para indicar que o está mudando para um protocolo diferente, conforme solicitado pelo cliente. Isso geralmente ocorre em conexões WebSocket, onde o servidor inicialmente responde com 101 Switching Protocols para indicar a mudança para o protocolo WebSocket e estabelecer uma conexão bidirecional persistente entre o cliente e o 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:

  • 200 OK – O servidor emite o código de status HTTP 200 OK quando uma solicitação é bem-sucedida e a resposta contém o conteúdo solicitado. Isso indica que o servidor processou com sucesso a solicitação e está enviando a resposta de volta ao cliente. É um código de status muito comum e indica que a comunicação entre o cliente e o servidor ocorreu sem problemas, resultando na entrega do conteúdo solicitado ao cliente.
  • 201 Criado – O servidor retorna o código de status HTTP 201 Created quando ele processa com sucesso uma solicitação e cria um novo recurso. Geralmente o servidor usa em resposta a operações POST, PUT ou PATCH. Por exemplo, isso indica que o servidor criou o recurso com sucesso. A resposta inclui normalmente uma entidade que descreve ou contém informações sobre o recurso recém-criado, como sua localização ou um identificador único. Esse código de status indica que a solicitação foi bem-sucedida e que o servidor foi capaz de criar o recurso conforme solicitado.
  • 202 Aceito – O servidor utiliza o código de status HTTP 202 Accepted para indicar que ele aceitou a solicitação para processamento, mas ainda não a concluiu. Isso significa que o servidor recebeu a solicitação e está trabalhando nela, mas a resposta final ainda não está disponível. As pessoas comumente usam esse código quando uma solicitação exige um tempo de processamento prolongado ou quando o processamento é assíncrono. A resposta pode incluir informações sobre o status ou o progresso da solicitação.
  • 203 Não-autorizado – O servidor utiliza o código de status HTTP 203 Non-Authoritative Information para indicar que a resposta enviada não é a versão definitiva ou autoritativa da informação solicitada. Isso significa que a resposta pode se basear em uma cópia em cache ou em um servidor intermediário que não tem a fonte original da informação. Geralmente, usamos esse código de status em operações de cache, em que retornamos a resposta armazenada em cache em vez de solicitar novamente a fonte original.

Os códigos de resposta HTTP 200 menos frequentes

  • 204 Nenhum conteúdo – O servidor conclui com sucesso a solicitação ao utilizar o código de status HTTP 204 No Content, indicando que não há conteúdo de retorno ao cliente na resposta. Geralmente, nós utilizamos esse código em solicitações POST, PUT ou DELETE, onde o cliente não precisa receber uma representação atualizada do recurso após a conclusão da operação. Em vez de retornar um corpo de resposta, o servidor envia apenas o cabeçalho da resposta.
  • 205 Reset – O código de status HTTP 205 Reset Content instrui o cliente a redefinir a exibição do documento que estava sendo visualizado. Normalmente, usamos esse código em operações de formulário, em que o cliente envia uma solicitação POST e o servidor responde com o código 205 para instruir o cliente a limpar o formulário. Isso evita que o cliente reenvie acidentalmente os mesmos dados novamente se o usuário atualizar a página.
  • 206 Conteúdo parcial – O servidor utiliza o código de status HTTP 206 Partial Content para indicar que a resposta é apenas uma parte do conteúdo solicitado. Isso ocorre quando a solicitação original inclui um cabeçalho de intervalo, especificando uma faixa específica de bytes desejada. O servidor atende à solicitação enviando apenas a parte solicitada do conteúdo, com o cabeçalho Content-Range especificando o intervalo de bytes retornados.
  • 207 Status Multi – O código de status HTTP 207 Multi-Status serve para indicar uma resposta que contém informações sobre vários recursos, em vez de apenas um recurso único. Comumente, utilizamos esse código em solicitações WebDAV, onde a resposta pode incluir detalhes sobre vários arquivos ou diretórios.Cada recurso individual incluído na resposta terá seu próprio status e metadados específicos.

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:

  • 300 Múltipla escolha – O servidor retorna o código de status HTTP 300 Multiple Choices quando existem várias opções disponíveis para a solicitação do cliente. Isso ocorre geralmente quando um recurso tem várias representações diferentes disponíveis e o servidor não consegue determinar qual delas retornar como resposta. O servidor incluirá uma lista de opções no corpo da resposta, fornecendo ao cliente a oportunidade de escolher entre elas. O cliente pode então selecionar uma das opções fornecidas e enviar uma nova solicitação para o recurso desejado. O código 300 serve para casos de redirecionamento negociado, onde o servidor de origem oferece várias opções para o cliente escolher.
  • 301 Movido Permanentemente – O servidor retorna o código de status HTTP 301 Moved Permanently quando move permanentemente um recurso para uma nova localização. Isso significa que a URL original da solicitação não é mais válida e o cliente deve atualizar seus links ou marcadores para a nova URL fornecida na resposta. Os mecanismos de busca também atualizam seus índices para apontar para a nova localização do recurso.

Códigos 300 menos usados

  • 302 Encontrado – O servidor retorna o código de status HTTP 302 Found quando temporariamente move um recurso para uma nova localização. Isso indica ao cliente que a solicitação foi bem-sucedida, mas o recurso solicitado está temporariamente disponível em outro lugar. O cliente deve usar a nova URL fornecida na resposta para acessar o recurso temporário.
  • 303 Veja outro – O código de status HTTP 303 See Other é semelhante ao 302, mas indica explicitamente que o cliente deve usar um método GET para recuperar a resposta. Isso é útil em casos em que uma solicitação POST resulta em uma resposta temporária que o cliente deve acessar com um método GET separado.
  • 304 Não modificado – O servidor utiliza o código de status HTTP 304 Not Modified quando uma solicitação GET condicional identifica um recurso que não sofreu modificações desde a última solicitação. O servidor informa ao cliente que a versão em cache do recurso ainda está válida e pronta para uso, e evita assim o envio desnecessário do recurso completo.
  • 305 Use Proxy -O código de status HTTP 305 Use Proxy tem pouco uso nos dias de hoje. Ele informa ao cliente que ele deve encaminhar a solicitação para um servidor proxy utilizando a URL fornecida na resposta.
  • 307 Redirecionamento temporário -O código de status HTTP 307 Temporary Redirect é semelhante ao 302, mas indica explicitamente que o cliente deve preservar o método de solicitação original ao acessar a nova localização temporária do recurso. Isso é útil em casos em que o cliente estava usando um método POST e precisa seguir a redireção com o mesmo método 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:

  • 400 Requisição inválida – O código de status HTTP 400 Bad Request aparece quando o servidor não consegue entender ou processar a solicitação do cliente. Ocorre, por exemplo, devido a uma sintaxe incorreta, parâmetros inválidos ou dados malformados. Ele indica que houve um erro na solicitação do cliente e que o servidor não pode processá-la conforme enviada. Isso pode ocorrer quando o URL está incorreto. Além disso, pode ocorrer quando faltam informações obrigatórias ou o formato dos dados enviados não está de acordo com o esperado pelo servidor. O código 400 alerta o cliente de que a solicitação precisa de correção antes que o servidor possa processá-la adequadamente.
  • 401 Não autorizado – O código de status HTTP 401 Unauthorized aparece quando o cliente tenta acessar um recurso protegido por autenticação. Entretanto, não fornece credenciais válidas ou não possui permissão para acessar o recurso. Esse código indica que a solicitação requer autenticação e o cliente deve fornecer as credenciais corretas, como nome de usuário e senha, para obter acesso. O servidor responde com o código 401 para informar ao cliente que ele não está autorizado a visualizar ou interagir com o recurso solicitado. Sendo assim, o servidor pede uma autenticação adequada. Geralmente, o servidor redireciona o cliente para uma página de login ou envia uma mensagem de erro informando que ele precisa fazer login antes de prosseguir.
  • 402 Pagamento necessário – O código de status HTTP 402 Payment Required é um código reservado que sinaliza que o recurso requer pagamento. O cliente precisa fazer um pagamento para acessar o recurso solicitado. Embora faça parte das especificações do protocolo HTTP, seu uso na prática não é tão comum. Esse código serve em cenários onde determinados conteúdos ou serviços requerem uma assinatura paga ou algum tipo de pagamento. Quando o cliente recebe o código 402, ele fica sabendo que precisa fazer o pagamento necessário antes de obter acesso ao recurso desejado. Normalmente, o servidor fornece uma página de pagamento ou instruções adicionais para orientar o usuário sobre como proceder com o pagamento.
  • 403 Proibido – O código de status HTTP 403 Forbidden indica que o servidor entendeu a solicitação do cliente. Entretanto, o servidor está se recusando a fornecer acesso ao recurso solicitado. Isso pode ocorrer por várias razões, como permissões inadequadas, autenticação inválida, restrições de IP, entre outras. Quando um servidor retorna o código 403, ele está informando ao cliente que ele não possui permissão para acessar o recurso desejado. Isso pode ser por motivos de segurança, restrições de privacidade ou políticas do servidor. Geralmente, o servidor também fornece informações adicionais sobre o motivo pelo qual negou o acesso. Por fim, isso pode ajudar o cliente a resolver o problema.
  • 404 Não encontrado – O código de status HTTP 404 Not Found é uma resposta do servidor que indica que a página não existe. Por exemplo, o cliente não encontrou o recurso (URL) solicitado. Isso significa que o servidor não pôde encontrar a página, arquivo ou recurso especificado na URL solicitada. O código 404 é um dos mais comuns encontrados na web. Geralmente ocorre porque há um link quebrado, uma página removida ou renomeada, ou um URL digitado incorretamente. O servidor retorna o código 404 para informar ao cliente que o recurso não está disponível. Por exemplo, dessa forma o servidor ajuda a evitar confusões e fornece uma indicação clara de que a página não existe.
  • 405 Método não permitido – O código de status HTTP 405 Method Not Allowed indica que o servidor não permite o método de solicitação usado pelo cliente. Isso ocorre quando o servidor reconhece o método de solicitação (por exemplo, GET, POST, PUT, DELETE), mas não o permite para a URL específica. O código 405 é para o servidor garantir a segurança e a integridade dos recursos. Ele ocorre, porque o servidor restringe os métodos que usados para acessar ou manipular determinados recursos. Por exemplo, isso ocorre quando há uma incompatibilidade entre o método de solicitação e configurações. Por exemplo, divergências entre o método enviado pelo cliente e as permissões ou configurações do servidor para a URL solicitada. O servidor inclui informações extras no cabeçalho da resposta para sinalizar quais métodos são ideais para o recurso em questão.
  • 406 Não Aceitável – O código de status HTTP 406 Not Acceptable é uma resposta do servidor que indica que o recurso solicitado não está disponível. Em princípio, trata-se de um formato não aceito para o cliente. Isso ocorre quando o servidor é incapaz de fornecer uma representação do recurso que atenda aos critérios de aceitação definidos pelo cliente na solicitação. O servidor usa o código 406 quando o cliente especifica cabeçalhos de solicitação que restringem os tipos de conteúdo aceitáveis, como no cabeçalho “Accept”. O servidor, ao não poder fornecer uma resposta compatível com esses critérios, envia o código 406. Isso pode acontecer, por exemplo, quando o cliente solicita um formato de arquivo específico que o servidor não suporta. Além disso, também ocorre quando não há uma versão em um idioma específico disponível para o recurso solicitado. A resposta do servidor pode incluir informações adicionais no corpo ou cabeçalho da resposta. Esclarecendo, isso ajuda a fornecer detalhes sobre a natureza do erro e quais formatos de conteúdo estão disponíveis.
  • 407 Autenticação de proxy necessária – O código de status HTTP 407 Proxy Authentication Required é uma resposta do servidor que indica que é necessário autenticação. Por exemplo, o servidor pede autenticação para acessar o proxy usado para a comunicação entre o cliente e o servidor. Isso ocorre quando o servidor proxy exige autenticação para processar a solicitação do cliente. O código 407 é semelhante ao código 401 Unauthorized, mas se aplica especificamente a situações em que a autenticação é necessária para acessar o proxy. Além disso, também ocorre não diretamente para o recurso solicitado. O servidor envia uma resposta 407 incluindo o cabeçalho de resposta Proxy-Authenticate, que especifica os métodos de autenticação suportados pelo servidor proxy. O cliente deve fornecer as credenciais de autenticação apropriadas no cabeçalho Authorization para continuar a comunicação com o servidor proxy e obter acesso ao recurso desejado.
  • 408 Tempo de requisição esgotou – O código de status HTTP 408 Request Timeout indica que o servidor encerrou a conexão. Por exemplo, ocorre porque o cliente demorou muito para enviar a solicitação. Isso geralmente ocorre quando não há atividade do cliente por um período de tempo prolongado e o servidor decide encerrar a conexão. O cliente pode tentar novamente a solicitação, mas é importante verificar se há problemas de conexão ou atrasos significativos na rede que possam estar causando o tempo limite.
  • 409 Conflito – O código de status HTTP 409 Conflict indica que houve um conflito na solicitação do cliente. Isso ocorre quando a solicitação do cliente entra em conflito com o estado atual do servidor. Por exemplo, duas solicitações simultâneas que tentam modificar o mesmo recurso ao mesmo tempo podem gerar isso. O servidor enviará detalhes adicionais no corpo da resposta para indicar a natureza específica do conflito. O cliente deve revisar essas informações e tomar medidas apropriadas, como modificar a solicitação ou tentar novamente em um momento posterior.

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:

  • 500 Erro interno do servidor – O código de status HTTP 500 Internal Server Error indica que ocorreu um erro interno no servidor. Normalmente ocorre ao processar a solicitação do cliente. Isso geralmente indica um problema no servidor, como uma falha no software, uma configuração incorreta ou algum tipo de erro no processamento da solicitação. O servidor envia esse código de status quando não consegue determinar com precisão a causa exata do erro. O cliente não pode fazer muito além de relatar o problema ao administrador do servidor e aguardar uma resolução.
  • 501 Não implementado – O código de status HTTP 501 Not Implemented indica que o servidor não suporta ou não reconhece a funcionalidade solicitada pelo cliente. Isso ocorre quando o servidor não implementou o método HTTP específico necessário para atender à solicitação do cliente. Isso pode ocorrer devido a limitações de configuração, restrições de segurança, ou simplesmente porque o servidor não suporta a funcionalidade solicitada. O cliente pode tentar usar métodos alternativos ou entrar em contato com o administrador do servidor para obter mais informações sobre como proceder.
  • 502 Bad Gateway – O código de status Erro 502 Bad Gateway indica que um servidor atuando como um gateway ou proxy recebeu uma resposta inválida de um servidor upstream. Isso geralmente ocorre quando há um problema de comunicação entre servidores ou quando o servidor upstream não consegue responder à solicitação corretamente. Esse código de status indica que o servidor intermediário não conseguiu obter uma resposta válida do servidor final e, portanto, não pode concluir a solicitação do cliente. O cliente pode tentar novamente mais tarde ou entrar em contato com o administrador do servidor para relatar o problema.
  • 503 Serviço indisponível – O código de status de erro 503 Service Unavailable indica que o servidor está temporariamente indisponível para lidar com a solicitação do cliente. Isso pode ocorrer quando o servidor está sobrecarregado, em manutenção ou enfrentando algum problema temporário que o impede de atender às solicitações. Geralmente, o servidor envia uma mensagem adicional no corpo da resposta para informar ao cliente sobre a natureza do problema e o tempo estimado de recuperação. O cliente pode tentar novamente mais tarde ou entrar em contato com o administrador do servidor para obter mais informações sobre a disponibilidade do serviço.
  • 504 Gateway Time-Out – O código de status HTTP 504 Gateway Timeout é semelhante ao código 502 Bad Gateway, indicando um problema de comunicação entre servidores. No entanto, usamos o código 504 quando o servidor intermediário não obtém uma resposta dentro do tempo limite estabelecido. Isso pode ocorrer quando o servidor upstream está demorando muito para processar a solicitação ou quando há um congestionamento na rede. Geralmente, o servidor retorna esse código quando existe um problema temporário que impede a conclusão da solicitação, e o cliente pode tentar novamente mais tarde.
  • 505 HTTP Version not supported –O código de status HTTP 505 HTTP Version Not Supported sinaliza que o servidor não suporta a versão do protocolo HTTP usada na solicitação. Isso geralmente ocorre quando o cliente está usando uma versão mais recente do protocolo HTTP que o servidor não reconhece ou não suporta. O cliente pode tentar usar uma versão mais antiga do protocolo ou entrar em contato com o administrador do servidor para verificar se há suporte para a versão do protocolo usada. Esse código é menos comum e pode ocorrer em situações em que o cliente e o servidor estão usando versões incompatíveis do protocolo HTTP.

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!
Gustavo Carvalho

Gustavo Carvalho

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!