4xx vs 5xx : erreurs du client et erreurs du serveur

Propose un critère rapide pour déterminer de quel côté se trouve la responsabilité d'une erreur.

4xx est la classe des erreurs du client. Elle signifie que la requête elle-même pose problème et couvre des cas comme une URL erronée (404), une erreur de syntaxe (400), des permissions insuffisantes (401, 403) et un trop grand nombre de requêtes (429). Renvoyer la même requête telle quelle donne généralement le même résultat, il faut donc corriger la requête.

5xx est la classe des erreurs du serveur. Elle signifie que la requête était valide, mais que le serveur n'a pas réussi à la traiter, et inclut les exceptions internes (500), un upstream défectueux (502), une surcharge ou une maintenance (503) et les délais d'attente de la passerelle (504). Ce ne sont pas des problèmes que le client peut corriger, il faut donc vérifier les journaux du serveur et l'état du backend.

Concernant l'ordre de débogage, quand vous voyez un 4xx il est plus rapide de vérifier d'abord l'URL, les en-têtes, le corps et l'authentification de la requête, et quand vous voyez un 5xx de vérifier les journaux du serveur, l'upstream et l'utilisation des ressources. 502, 503 et 504 sont généralement liés à des problèmes de backend derrière un proxy inverse.