Codes d’état HTTP
Les codes les plus fréquents côté API et CDN. Les codes expérimentaux rares sont omis.
| Code | Nom | Signification |
|---|---|---|
| 200 | OK | Succès avec corps |
| 201 | Créé | Ressource créée |
| 204 | Pas de contenu | Succès, corps vide |
| 301 | Déplacé de façon permanente | Redirection permanente |
| 302 | Trouvé | Redirection temporaire |
| 304 | Non modifié | Utiliser la copie en cache |
| 400 | Requête incorrecte | Requête du client invalide |
| 401 | Non autorisé | Authentification requise ou échouée |
| 403 | Interdit | Authentifié mais refusé |
| 404 | Introuvable | La ressource n'existe pas |
| 405 | Méthode non autorisée | Mauvaise méthode HTTP |
| 408 | Dépassement de délai | Client trop lent |
| 409 | Conflit | Conflit d'état |
| 410 | Disparu | Supprimé définitivement |
| 422 | Entité non traitable | Sémantique invalide |
| 429 | Trop de requêtes | Limité en fréquence |
| 500 | Erreur interne du serveur | Panne du serveur |
| 502 | Passerelle invalide | Réponse amont invalide |
| 503 | Service indisponible | Surchargé ou hors service |
| 504 | Délai dépassé de la passerelle | Délai dépassé en amont |
Notes
- 401 vs 403 : identifiants absents/échoués contre authentifié mais refusé.
- Un CDN peut renvoyer 5xx si l’origine est injoignable.
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.