Codes d’état HTTP

Les codes les plus fréquents côté API et CDN. Les codes expérimentaux rares sont omis.

Mis à jour:

CodeNomSignification
200OKSuccès avec corps
201CrééRessource créée
204Pas de contenuSuccès, corps vide
301Déplacé de façon permanenteRedirection permanente
302TrouvéRedirection temporaire
304Non modifiéUtiliser la copie en cache
400Requête incorrecteRequête du client invalide
401Non autoriséAuthentification requise ou échouée
403InterditAuthentifié mais refusé
404IntrouvableLa ressource n'existe pas
405Méthode non autoriséeMauvaise méthode HTTP
408Dépassement de délaiClient trop lent
409ConflitConflit d'état
410DisparuSupprimé définitivement
422Entité non traitableSémantique invalide
429Trop de requêtesLimité en fréquence
500Erreur interne du serveurPanne du serveur
502Passerelle invalideRéponse amont invalide
503Service indisponibleSurchargé ou hors service
504Délai dépassé de la passerelleDélai dépassé en amont

Notes

Les cinq classes de codes de statut

Le premier chiffre indique qui est responsable et donne une idée de ce qui s'est produit. Les 1xx sont informatifs et rarement vus par les clients. Les 2xx indiquent un succès — 200 OK avec un corps, 204 No Content sans corps, 206 pour un téléchargement partiel. Les 3xx signifient que la ressource se trouve ailleurs. Les 4xx signifient que la requête elle-même est erronée : syntaxe invalide, identifiants manquants ou limite de débit atteinte. Les 5xx signifient que le serveur a échoué alors que la requête était correcte. Lire seulement le premier chiffre suffit déjà à savoir s'il faut corriger le client ou remonter au serveur.

Choisir la bonne redirection

301 et 308 signifient tous deux permanent ; 302 et 307 signifient tous deux temporaire. La différence réside dans la gestion de la méthode: 301 et 302 laissent historiquement aux clients le droit de transformer un POST en GET, tandis que 307 et 308 conservent la méthode et le corps originaux, ce qui importe pour les API et les soumissions de formulaires. Utilisez 301 pour une URL qui a réellement changé définitivement, et 302 ou 307 pour un routage temporaire comme des pages de maintenance ou des tests A/B. Méfiez-vous des chaînes de redirection — chaque saut supplémentaire coûte en latence et en popularité, donc redirigez directement vers la destination finale.

Démêler les erreurs 4xx

401 signifie que l'authentification est manquante ou a échoué, donc envoyer des identifiants valides peut résoudre le problème ; 403 signifie que la requête a été comprise et authentifiée mais n'est pas autorisée, et réessayer avec les mêmes identifiants ne servira à rien. 404 signifie que la ressource n'existe pas ; 410 signale qu'elle existait et a été délibérément supprimée. 429 signifie que vous avez atteint une limite de débit et devriez ralentir, en respectant l'en-tête Retry-After éventuel. 400 signifie généralement une entrée malformée, 405 signifie que la méthode est incorrecte pour cette URL, et 422 signifie que la syntaxe était valide mais que le contenu a échoué lors de la validation.

Lire les codes 5xx

500 est une erreur interne générique ; 502 Bad Gateway signifie qu'un serveur amont a renvoyé quelque chose d'inutilisable ; 503 signifie que le service est temporairement indisponible ou surchargé ; 504 signifie qu'un serveur amont a dépassé son délai d'attente. Ce sont des problèmes du serveur, pas de l'appelant, donc la solution consiste à réessayer avec une dégradation exponentielle, à vérifier la santé du serveur amont ou à alléger la charge. Un CDN peut émettre un 502, 503 ou 504 pour le compte d'un serveur d'origine inaccessible, ce qui explique pourquoi la même erreur peut provenir de deux endroits très différents — consultez les en-têtes server et cache-status pour déterminer laquelle.

Codes de statut en pratique : API et mise en cache

Deux usages courants méritent une attention particulière. D'abord, la mise en cache : un 200 accompagné de l'en-tête Cache-Control peut être stocké, un 304 Not Modified indique au client de réutiliser sa copie, et un 5xx ne doit pas être mis en cache. Ensuite, les API : un POST qui crée une ressource doit renvoyer un 201 avec un en-tête Location, un DELETE renvoie souvent un 204, et un PATCH qui ne modifie rien peut renvoyer un 200 ou un 204. Les clients bien conçus distinguent d'abord la classe (2xx, 4xx, 5xx) puis le code exact, ce qui rend la logique de réessai et de dégradation simple et prévisible.

Questions fréquentes

Que signifie le code HTTP 403 ?
403 Forbidden signifie que le serveur a compris et authentifié la requête, mais refuse l’accès à la ressource. Contrairement au 401, se reconnecter ne change rien.
Quelle est la différence entre les redirections HTTP 301 et 302 ?
301 indique un déménagement permanent : clients et moteurs de recherche doivent utiliser la nouvelle URL. 302 est une redirection temporaire, l’URL d’origine reste valable.
Que signifie HTTP 429 et comment le corriger ?
429 signifie que vous avez atteint une limite de requêtes. Ralentissez et respectez l’en-tête Retry-After si le serveur l’envoie.

Références