O que são códigos de status de erro do servidor?

Prévia grátis 4 min de leitura

O servidor cometeu um erro

Imagine que você entra em um restaurante e faz seu pedido perfeitamente: item correto, mesa correta, pagamento válido. Mas então a cozinha pega fogo. Isso não é sua culpa como cliente; o restaurante não consegue atender seu pedido agora.

É isso que os códigos de status 5xx representam no HTTP. O cliente fez tudo certo, mas o servidor encontrou um problema e não conseguiu completar a requisição.


O que torna o 5xx diferente do 4xx?

Com erros 4xx, o cliente é o culpado: URL incorreta, autenticação ausente, dados inválidos. Com erros 5xx, o servidor é o culpado: ele travou, expirou ou encontrou uma condição inesperada.

Requisição do Cliente (válida) ──→ Servidor (quebrado) ──→ Resposta 5xx

"Eu fiz minha parte corretamente,   "Algo deu errado
 mas algo quebrou                     do nosso lado."
 no lado do servidor."

Essa distinção é importante porque:

  • 4xx: O cliente deve corrigir a requisição e tentar novamente
  • 5xx: A equipe do servidor precisa investigar e corrigir o problema

A família 5xx

Aqui estão os códigos de erro de servidor mais importantes que você encontrará:

Código Nome Quando Acontece
500 Internal Server Error Exceção não tratada ou travamento
501 Not Implemented Servidor não suporta a funcionalidade
502 Bad Gateway Servidor upstream enviou resposta inválida
503 Service Unavailable Servidor sobrecarregado ou em manutenção
504 Gateway Timeout Servidor upstream não respondeu a tempo
505 HTTP Version Not Supported Servidor não suporta a versão HTTP usada

Na prática, você lidará com 500, 502, 503 e 504 com mais frequência.


Por que erros 5xx são críticos

Diferente dos erros 4xx que afetam usuários individuais fazendo requisições incorretas, erros 5xx frequentemente afetam todos os usuários ao mesmo tempo:

500 Internal Server Error 503 Service Unavailable
O que significa O código da sua aplicação travou O servidor está vivo mas não consegue processar requisições
Alcance Toda requisição que passa pelo caminho quebrado Todos os usuários, ou só novas conexões
Causa usual Um bug, não configuração Manutenção planejada ou sobrecarga
O que fazer Atenção imediata do desenvolvedor Costuma se resolver sozinho, ou precisa escalar

Erros 5xx são incidentes de alta prioridade porque significam que sua aplicação está falhando em servir usuários que não estão fazendo nada errado.


O papel da infraestrutura

Aplicações web modernas têm múltiplas camadas entre o usuário e seu código:

Usuário ──→ CDN ──→ Proxy reverso ──→ Servidor de app ──→ Seu app ──→ Banco de Dados
                    (Nginx)          (Puma)               (Rails)     (PostgreSQL)

Um erro 5xx pode se originar em qualquer camada:

Camada 5xx Típico
Load Balancer / Proxy Reverso 502, 504
Servidor de Aplicação (Puma) 500, 503
Código da Aplicação (Rails) 500
Banco de Dados 500, 503
Chamadas a APIs externas 502, 504

Saber qual camada causou o erro é o primeiro passo na depuração.


5xx em desenvolvimento vs produção

O Rails lida com erros 5xx de forma muito diferente dependendo do ambiente:

Aspecto Desenvolvimento Produção
Página de erro Stack trace detalhado Genérico "Algo deu errado"
Detalhes do erro Exceção completa + código fonte Escondidos dos usuários
Logging Saída no console Arquivos de log + rastreamento de erros
Objetivo Ajudar a depurar rapidamente Proteger usuários e segurança

Em desenvolvimento, ver um erro 500 mostra o stack trace completo direto no navegador. Em produção, você nunca expõe detalhes internos: em vez disso, registra nos logs e mostra uma página de erro amigável.


Resumo

Conceito Ponto Chave
Significado do 5xx O servidor falhou ao atender uma requisição válida
5xx vs 4xx 5xx = culpa do servidor, 4xx = culpa do cliente
Códigos comuns 500, 502, 503, 504 são os mais frequentes
Impacto Muitas vezes afeta todos os usuários de uma vez
Infraestrutura Erros podem vir de qualquer camada (proxy, app, banco de dados)
Ambientes Desenvolvimento mostra detalhes; produção os esconde
Aula 1 de 7 · grátis

Continue com a aula 2

500 Internal Server Error

Mostra as causas de erros 500 no Rails, como o Rails os trata e como retornar códigos mais específicos.

Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.

Digite para buscar...