Erros HTTP: o que significam 500, 502, 503 e 504

Erros HTTP: o que significam 500, 502, 503 e 504
Quando você tenta acessar uma página e aparece uma tela em branco com um número grande e uma mensagem em inglês, a reação habitual é a confusão: o site caiu? É a minha conexão? Eu quebrei alguma coisa? Esses números não são aleatórios: são códigos de status HTTP, a forma padrão pela qual um servidor web informa ao navegador (e a você) o que aconteceu com a sua solicitação. Entender o que cada código significa transforma um problema misterioso em um diagnóstico concreto. E embora existam dezenas de códigos, a grande maioria dos erros que você verá em um site pequeno se resume a quatro: 500, 502, 503 e 504. Neste artigo explicamos o que são os códigos HTTP, o que cada um desses quatro erros indica, em que eles diferem e quais passos você pode seguir para resolvê-los.O que são códigos de status HTTP?
Cada vez que você abre uma página, o seu navegador envia uma solicitação HTTP ao servidor onde o site está hospedado. O servidor processa essa solicitação e responde com um código de três dígitos que resume o resultado: se tudo deu certo, se a página mudou de endereço, se a solicitação estava mal formulada ou se o servidor não conseguiu concluí-la. Esses códigos são definidos em padrões abertos mantidos pelo IETF e são agrupados pelo primeiro dígito. Esse primeiro número não é um detalhe menor: ele diz imediatamente de que lado está o problema. Os códigos que começam com 4 indicam que algo falhou na solicitação que você enviou; os que começam com 5, que a falha está do lado do servidor. Essa distinção é a chave para não perder tempo procurando o problema no lugar errado.Os cinco grupos de códigos HTTP
Existem cinco grupos, e conhecê-los permite interpretar qualquer código que você encontrar, mesmo que nunca o tenha visto antes:- 1xx: informativos. O servidor recebeu a solicitação e ainda está processando. São temporários e raramente você os verá como usuário.
- 2xx: sucesso. A solicitação foi processada corretamente. O mais conhecido é o 200 OK, que significa que a página carregou sem problemas.
- 3xx: redirecionamentos. O recurso foi movido e o navegador precisa ir para outro endereço. Exemplos típicos são o 301 (movido permanentemente) e o 302 (movido temporariamente).
- 4xx: erros do cliente. O servidor entendeu a solicitação, mas não pode atendê-la porque o problema está no que foi pedido. O mais famoso é o 404 (página não encontrada), junto com o 400 (solicitação inválida) e o 403 (acesso proibido).
- 5xx: erros do servidor. O servidor falhou ao tentar atender uma solicitação que, em princípio, era válida. É aqui que vivem o 500, o 502, o 503 e o 504, os protagonistas deste artigo.
Os códigos mais comuns e o que significam
Antes de entrar em detalhes sobre os erros 5xx, vale a pena ter uma visão completa dos códigos que mais aparecem na prática. Esta tabela resume os sete que você verá com mais frequência:| Código | Significado | Causa comum | Solução básica |
|---|---|---|---|
| 200 | Sucesso: a página carregou corretamente. | Nenhuma; é a resposta normal. | Não requer ação. |
| 301 | Redirecionamento permanente para outra URL. | A página mudou de endereço. | Atualize links e favoritos para a nova URL. |
| 404 | O recurso solicitado não foi encontrado. | URL digitada errada, link quebrado ou página excluída. | Corrija ou redirecione o link; confira a grafia da URL. |
| 500 | Erro interno do servidor. | Falha no código, na configuração ou nas permissões. | Verifique os logs de erro e a última atualização. |
| 502 | Resposta inválida de um servidor intermediário ou superior. | O servidor de aplicação ou o PHP-FPM parou. | Reinicie os serviços e confirme que estão ativos. |
| 503 | Serviço temporariamente indisponível. | Manutenção, sobrecarga ou limites de recursos. | Aguarde, verifique o uso de recursos ou reative o site. |
| 504 | A porta de entrada esgotou o tempo de espera. | Um script ou processo demora demais para responder. | Aumente o tempo limite ou otimize o processo lento. |
500 Internal Server Error: o servidor falhou internamente
O erro 500 Internal Server Error é o mais genérico de todos. O servidor recebeu uma solicitação válida, tentou processá-la e falhou por um motivo que ele próprio não consegue especificar. Por isso a mensagem é tão pouco útil: é a forma que o servidor encontra de dizer que algo quebrou e ele não sabe exatamente o quê. Em sites pequenos, as causas mais frequentes são erros de programação, como um erro de sintaxe em PHP ou um plugin incompatível com a versão atual da plataforma; arquivos de configuração corrompidos, como um .htaccess com uma diretiva inválida; permissões incorretas em arquivos ou pastas; ou um limite de memória do servidor que se esgotou ao processar uma tarefa pesada. Também é comum o erro aparecer logo depois de uma atualização: o tema, o plugin ou o núcleo do site foi atualizado e algo deixou de ser compatível. O que fazer diante de um 500:- Descubra quando começou. Se o erro apareceu depois de uma atualização ou de uma mudança recente, essa mudança é a culpada mais provável.
- Verifique os registros de erro (logs). Na maioria dos painéis de hospedagem você encontra os logs de erro do site. A linha exata do arquivo que falha costuma aparecer ali.
- Ative a exibição de erros temporariamente se tiver acesso ao código, somente em um ambiente de desenvolvimento: ela indicará o arquivo e a linha do problema.
- Confira as permissões de arquivos e pastas e o conteúdo do arquivo .htaccess.
- Reinicie o serviço do seu site (Apache, PHP-FPM ou o serviço de aplicação) pelo painel de controle.
- Se o site está em hospedagem compartilhada e você não encontra a causa, contate o suporte e envie o erro exatamente como aparece, junto com o horário em que começou.
502 Bad Gateway: o mensageiro não conseguiu se comunicar
O erro 502 Bad Gateway indica um problema de comunicação entre dois servidores. A maioria dos sites tem uma camada intermediária: um servidor proxy ou uma porta de entrada (por exemplo, Nginx) que recebe a solicitação do visitante e a encaminha ao servidor que realmente gera a página (por exemplo, Apache ou PHP-FPM). Quando esse servidor de aplicação não responde ou responde de forma inválida, a porta de entrada devolve um 502. A diferença fundamental em relação ao 500 é que o site em si pode estar perfeitamente bem: o código não tem erros. O problema é que o processo que deveria executá-lo parou, reiniciou no meio da requisição ou não está escutando. As causas típicas incluem um PHP-FPM que caiu, um servidor de aplicação interrompido, uma reinicialização em andamento, um firewall bloqueando a conexão entre serviços ou um pico de tráfego que deixou o processo sem recursos. O que fazer diante de um 502:- Confirme que os serviços estão ativos. Pelo painel de hospedagem, verifique se o PHP-FPM, o Apache ou o serviço de aplicação está em execução e reinicie se necessário.
- Tente novamente em alguns minutos. Muitos erros 502 são transitórios e desaparecem sozinhos quando o serviço reinicia.
- Verifique os logs do servidor e de erros para ver se algum processo caiu por falta de memória ou por uma falha.
- Se você usa um proxy ou CDN como o Cloudflare, confirme que o servidor de origem está acessível e que o firewall não está bloqueando as conexões dele.
- Se os serviços caem repetidamente, o problema geralmente é de recursos: contate o suporte da hospedagem para revisar os limites do seu plano.
503 Service Unavailable: o serviço não está disponível agora
O erro 503 Service Unavailable significa que o servidor está vivo e funcionando, mas não consegue atender a solicitação neste momento. Diferente do 500, aqui o servidor sabe por que não está respondendo: está em manutenção, está sobrecarregado ou está reiniciando. Esse código tem dois lados. Um é legítimo e até desejável: muitos sites ativam uma página de manutenção que retorna 503 enquanto são atualizados, para que os visitantes saibam que o site voltará e para que os mecanismos de busca não indexem uma página pela metade. O outro lado é o problemático: um pico de tráfego que supera a capacidade do servidor, um processo consumindo toda a memória ou um banco de dados saturado que deixa o site sem condições de responder. O que fazer diante de um 503:- Verifique se a manutenção é intencional. Se você (ou alguém da sua equipe) está atualizando o site, o 503 é normal: aguarde terminar e retire o modo de manutenção.
- Confira o uso de recursos. Entre no painel de hospedagem e observe o consumo de CPU, memória e conexões dos últimos minutos. Se estiver no limite, o servidor está recusando solicitações para não colapsar.
- Aguarde alguns minutos antes de insistir. Se foi um pico de tráfego ou uma reinicialização, o site deve voltar sozinho.
- Reinicie o serviço se o estado de sobrecarga persistir.
- Se o 503 aparece com frequência, o seu plano de hospedagem ficou pequeno: converse com o suporte sobre aumentar recursos ou mudar de plano.
504 Gateway Timeout: o tempo de espera se esgotou
O erro 504 Gateway Timeout aparece quando a porta de entrada até conseguiu se comunicar com o servidor de aplicação, mas ele demorou demais para responder e o tempo máximo de espera foi superado. Em outras palavras: o servidor intermediário fez a pergunta, esperou o tempo permitido e, sem receber resposta, avisou ao navegador que o tempo acabou. Aqui está a diferença prática em relação ao 502: no 502 a resposta é inválida ou nunca chega; no 504 a resposta simplesmente chega tarde demais. Isso geralmente indica um processo lento por trás: um script que demora mais do que a configuração permite (por exemplo, o tempo máximo de execução do PHP), uma consulta muito pesada ao banco de dados, um serviço externo que não responde ou um servidor sobrecarregado que coloca cada requisição em uma fila longa. O que fazer diante de um 504:- Recarregue a página. Se o site responde na segunda ou terceira tentativa, o problema foi um pico pontual.
- Identifique o processo lento. Verifique os logs e as consultas lentas do banco de dados: normalmente há um script específico que roda por muito tempo.
- Aumente os tempos limite. Se você usa Nginx como proxy, revise diretivas como proxy_read_timeout ou fastcgi_read_timeout, além do tempo máximo de execução do PHP. Faça isso com cuidado: aumentar o limite não corrige a causa, apenas dá mais tempo.
- Otimize em vez de remendar. Uma consulta que demora sessenta segundos se resolve melhor com um índice no banco de dados ou com cache do que com um limite de trezentos segundos.
- Se você não tem acesso a essa configuração, o suporte da hospedagem pode ajudá-lo a ajustar os tempos ou a identificar o processo que está saturando o servidor.
Como diferenciar os quatro erros 5xx
Quando o seu site mostra um erro 5xx, esta regra rápida ajuda a localizar o problema:- 500: o servidor falhou ao executar a aplicação. Verifique o código, os logs e a última atualização.
- 502: a porta de entrada não obteve uma resposta válida do servidor de aplicação. Reinicie e confira os serviços.
- 503: o servidor está disponível, mas não pode atender agora. Geralmente é manutenção ou sobrecarga.
- 504: a porta de entrada obteve uma resposta, mas tarde demais. Procure o processo lento e aumente ou otimize os tempos.
Ordem de ação diante de um erro 5xx
Se você não sabe por onde começar, siga esta ordem: ela cobre primeiro os casos mais prováveis e deixa o suporte da hospedagem como último recurso, não como primeira opção.- Verifique se o erro é geral. Teste em outra rede, no celular ou em uma janela anônima. Se só falha para você, pode ser um problema local (inclusive um cache do navegador guardando a página de erro).
- Reinicie. Pare e inicie novamente o serviço do seu site pelo painel de hospedagem. Uma parcela importante dos erros 5xx se resolve com um reinício.
- Verifique os logs. Os registros de erro do painel costumam apontar o arquivo e a linha exata do problema.
- Confira os recursos. CPU e memória no limite explicam muitos erros 502, 503 e 504.
- Desfaça a última mudança. Se o erro veio depois de uma atualização, volte esse plugin, tema ou configuração para a versão anterior.
- Contate o suporte da hospedagem com todas as informações: qual erro você vê, desde quando, o que você mudou antes e o que dizem os logs. Na hospedagem compartilhada, alguns ajustes (como os tempos de proxy ou a configuração do servidor) só podem ser feitos pelo provedor.