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.
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.
Conteúdo
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.
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.