4xx vs 5xx: erros do cliente e erros do servidor

Oferece um critério rápido para julgar de que lado está a responsabilidade de um erro.

4xx é a classe de erros do cliente. Significa que a própria requisição tem um problema e abrange coisas como uma URL errada (404), um erro de sintaxe (400), permissões insuficientes (401, 403) e requisições em excesso (429). Reenviar a mesma requisição como está costuma dar o mesmo resultado, então é preciso corrigir a requisição.

5xx é a classe de erros do servidor. Significa que a requisição era válida, mas o servidor não conseguiu processá-la, incluindo exceções internas (500), um upstream com defeito (502), sobrecarga ou manutenção (503) e timeouts de gateway (504). Não são problemas que o cliente possa resolver, então é preciso verificar os logs do servidor e o estado do backend.

Em termos de ordem de depuração, quando você vê um 4xx é mais rápido verificar primeiro a URL, os cabeçalhos, o corpo e a autenticação da requisição, e quando vê um 5xx verificar os logs do servidor, o upstream e o uso de recursos. 502, 503 e 504 costumam estar relacionados a problemas do backend atrás de um proxy reverso.