Qualquer servidor web que receba uma requisição HTTP responde com um código de status HTTP. Esses códigos são notas curtas do servidor descrevendo a situação. Não contêm nenhum conteúdo real do site. Em vez disso, são um relatório de como as coisas correram após o recebimento da requisição HTTP. Em muitas situações, esses códigos são importantes para diagnosticar vários problemas do servidor/cliente.
Esses códigos são números inteiros de três dígitos, cada um significando vários status. Com base no primeiro dígito, os códigos HTTP são divididos em cinco categorias:
-
Respostas de informação: O valor varia de 100 a 199. Ele descreve que a requisição foi recebida e está sendo processada.
-
Respostas de sucesso: O valor varia de 200 a 299. Ele diz que a ação foi recebida, compreendida e aceita com sucesso.
-
Mensagens de redirecionamento: O valor varia de 300 a 399. Significa que ações adicionais são necessárias para concluir a requisição.
-
Respostas de erro do cliente: O valor varia de 400 a 499. Ou a requisição contém sintaxes incorretas ou não pode ser atendida.
-
Respostas de erro do servidor: O valor varia de 500 a 599. Significa que o servidor falhou ao processar uma requisição válida.
Neste guia, discutiremos alguns dos códigos de erro HTTP mais comuns que todos encontram (4xx e 5xx), sob a perspectiva de um administrador de sistemas. Inúmeras situações podem levar o servidor web a responder com um código específico. Além disso, este tutorial discutirá possíveis causas e soluções.
Erros do Cliente vs Servidor
Os códigos de erro de 400 a 499 resultam do cliente do usuário (um navegador web ou qualquer cliente HTTP). Embora os erros sejam principalmente relacionados ao cliente, é útil saber qual código o usuário está enfrentando. Isso pode ajudar a determinar se um problema potencial pode ser implantado no lado do servidor.
Os erros do servidor (código de status HTTP 500 a 599), por outro lado, ocorrem quando o servidor está ciente de que ocorreu um erro ou não é capaz de processar a requisição.
Solução de Problemas Gerais
Independentemente do erro, aqui estão algumas dicas gerais de solução de problemas que você deve testar primeiro sempre que se deparar com qualquer código de erro HTTP:
-
Ao usar um navegador web para testar o servidor, é uma boa prática atualizar o navegador após fazer qualquer alteração no servidor.
-
O log do servidor contém informações detalhadas sobre como o servidor está lidando com as requisições. Por exemplo, servidores web populares como Apache e Nginx produzem arquivos access.log e error.log. Verificar esses logs pode revelar informações úteis.
-
Os códigos de erro HTTP fazem parte de um padrão. Os programas implementam esse padrão com base em como lidam com as requisições. Isso significa que um código de status específico é retornado dependendo de como o software do servidor está lidando com o erro específico.
Este guia deve servir como uma diretriz útil para descobrir a origem do problema.
Erros HTTP Comuns
-
Erros Comuns do Cliente

O código de erro 400 indica uma Requisição Inválida (Bad Request). Ele descreve que a requisição HTTP enviada ao servidor contém uma sintaxe inválida. Vamos dar uma olhada nas possíveis fontes de sintaxes incorretas:
-
Os cookies relacionados ao site podem estar corrompidos. Limpar os cookies e o cache do navegador pode resolver o problema.
-
O navegador web que envia a requisição pode estar com defeito/bugs.
-
Pode ser uma requisição inválida devido a um erro ao formar manualmente requisições HTTP, por exemplo, uso incorreto do curl.

O código de erro 401 (Não Autorizado) ocorre quando a requisição está tentando acessar recursos que não foram autenticados ou não foram autenticados corretamente. Para resolver o problema, o usuário deve fornecer as credenciais necessárias para acessar o recurso protegido.
Uma situação de exemplo seria quando o usuário está tentando acessar um recurso protegido por autenticação HTTP. Em tal situação, o usuário receberá um código de erro 401, a menos que um nome de usuário e senha válidos sejam fornecidos.

O código de erro 403 (Proibido) refere-se a uma situação em que a requisição do usuário é válida, mas o servidor se recusa a atender à requisição. Pode ser devido à falta de permissão para acessar o recurso solicitado. Existem alguns cenários que podem levar a esse problema:
-
Permissões de arquivo: Se o servidor não tiver permissão suficiente para acessar o arquivo solicitado, isso pode resultar em um erro 403. As correções possíveis incluem verificar se o servidor está tentando acessar o arquivo de índice do servidor web, o processo de trabalho de propriedade do www-data usuário, e se o arquivo de índice está localizado no local correto (no caso do Nginx, é /usr/share/nginx/html/index.html).
-
.htaccess: Os servidores web usam o .htaccess para implementar vários recursos de segurança, por exemplo, filtrar endereços ou intervalos de IP específicos. Uma correção possível envolve verificar se o endereço IP de onde a solicitação HTTP está vindo não está bloqueado.
-
O arquivo não existe: Se a solicitação estiver tentando acessar um local que não possui um arquivo de índice padrão e as listagens de diretórios não estiverem ativadas, o servidor retornará o erro 403. Em tal situação, uma correção possível envolve ajustar a configuração do servidor para permitir listagens de diretórios.

O código de erro 404 (Not Found) significa que o usuário conseguiu se conectar ao servidor web com sucesso, mas não conseguiu localizar o recurso solicitado. Esse erro pode aparecer em várias situações. Aqui estão algumas ações possíveis de solução de problemas:
-
Verifique se há algum erro de digitação em potencial no link que direcionou o usuário ao recurso do servidor.
-
O usuário pode ter digitado a URL incorretamente. Verifique se este é o caso e corrija-o, se necessário.
-
Verifique a existência do arquivo no servidor. Ele foi movido ou excluído do servidor?
-
O servidor pode estar configurado com o local raiz do documento incorreto. Verifique isso e corrija, se apropriado.
-
O processo de trabalho do servidor web de propriedade do usuário tem permissão para percorrer o arquivo solicitado? Observe que é necessário ter permissões de leitura e execução para acessar um diretório.
-
O recurso é um link simbólico? Nesse caso, o servidor deve estar configurado para seguir links simbólicos.
-
Erros comuns do servidor

O código de erro 500 (Internal Server Error) ocorre quando o servidor não consegue processar a solicitação por motivos desconhecidos. Em algumas situações, o servidor relatará o erro 500 quando um código de erro 5xx mais específico seria apropriado.
Uma das fontes mais comuns do erro 500 é um servidor mal configurado, por exemplo, um arquivo .htaccess malformado. Ele também pode ocorrer se houver pacotes ausentes, por exemplo, tentar executar códigos PHP sem ter o PHP instalado no sistema.

O código de erro 502 (Bad Gateway) indica que o servidor é um proxy ou um gateway e não consegue obter uma resposta válida do servidor de backend (responsável por realmente atender à solicitação). Se o servidor for um proxy reverso, por exemplo, um balanceador de carga, há algumas coisas diferentes a serem verificadas:
-
Os servidores de backend estão saudáveis.
-
O proxy reverso está configurado corretamente (com as especificações de backend adequadas).
-
A conexão entre o proxy reverso e o servidor de backend está saudável. Se os servidores puderem se comunicar usando portas diferentes, o firewall deverá permitir a conexão a essas portas.
-
Se o aplicativo web estiver configurado para usar um socket, certifique-se de que o socket exista no local correto com as permissões adequadas.

O código de erro 503 (Service Unavailable) descreve que o servidor está passando por uma sobrecarga ou está atualmente em manutenção. Isso implica que o servidor deve ficar disponível em algum momento.
Se o servidor não estiver em manutenção, isso indica que o servidor não possui os recursos de hardware necessários (poder de processamento, memória, etc.) para lidar com as solicitações recebidas. Nesse caso, o servidor deve ser configurado para permitir mais usuários ou alocar mais recursos.
O código de erro 504 (Gateway Timeout) informa que o servidor é um proxy ou um servidor de gateway e não recebeu uma resposta do backend dentro da janela de tempo permitida. Existem várias situações que podem levar a esse problema:
-
Uma conexão de rede ruim entre os servidores.
-
O servidor de backend está operando muito lentamente (devido a problemas de desempenho).
-
O limite de tempo limite (timeout) do servidor de gateway/proxy é muito curto.
Considerações finais
Este guia discute códigos de erro HTTP, especialmente alguns dos mais comuns. Ele descreve o que os códigos significam e oferece sugestões para possíveis ações de solução de problemas. Com esse conhecimento, você agora tem uma base sólida para solucionar problemas em seus servidores web ou aplicativos.
Esta é apenas uma lista curta dos códigos de status HTTP mais populares. Para uma lista abrangente de todos os códigos de status HTTP, confira os códigos de status HTTP na Wikipedia. Você também pode conferir nosso tutorial sobre Nginx HTTP Proxying, Balanceamento de Carga, Buffering e Caching: Uma Visão Geral.
Feliz computação!
Comentários
Nenhum comentário ainda. Seja o primeiro.