Le Guide Ultime des Codes de Statut HTTP (100–599)

28 Feb 2026 2,505 words

Le Guide Ultime des Codes de Statut HTTP

Les codes de statut HTTP indiquent le résultat du traitement d'une requête par un serveur web. Ils sont regroupés en cinq classes, chacune représentant une catégorie différente de réponse. Comprendre ces codes est essentiel pour les développeurs web, les concepteurs d'API, les administrateurs système et toute personne travaillant avec les technologies web. Les codes de statut permettent aux clients — qu'il s'agisse de navigateurs, d'applications mobiles ou d'autres serveurs — de comprendre ce qui est arrivé à leur requête et comment procéder.

Comment Fonctionnent les Codes de Statut HTTP

Lorsqu'un client envoie une requête HTTP à un serveur, le serveur répond avec un code de statut à trois chiffres suivi d'une phrase de raison lisible par l'humain. Le premier chiffre du code de statut définit la classe de la réponse. Les deux chiffres restants n'ont aucun rôle de catégorisation spécifique mais offrent une granularité au sein de chaque classe. Les codes de statut sont définis par l'Internet Assigned Numbers Authority (IANA) sur la base de spécifications publiées dans des documents RFC. En 2025, il existe plus de 70 codes de statut HTTP officiellement enregistrés, bien que seulement environ 30 à 40 soient couramment utilisés.

Référence Rapide

Classe Catégorie Signification
1xx Informationnel Requête reçue, traitement en cours
2xx Succès Requête reçue, comprise et acceptée
3xx Redirection Action supplémentaire nécessaire pour compléter la requête
4xx Erreur Client Requête avec une syntaxe incorrecte ou ne pouvant être satisfaite
5xx Erreur Serveur Le serveur n'a pas pu satisfaire une requête valide

1xx - Informationnel

Ces codes indiquent que le serveur a reçu les en-têtes de la requête et que le client devrait continuer à envoyer le corps, ou que le serveur passe à un protocole différent. Ce sont des réponses provisoires sans contenu réel.

Code Nom Description
100 Continuer Serveur a reçu les en-têtes, le client devrait continuer à envoyer le corps
101 Changement de Protocole Le serveur change de protocole (ex. mise à niveau vers WebSocket)
102 Traitement Le serveur traite la requête mais pas encore de réponse (WebDAV)
103 Indices Précoces Précharger les ressources pendant que le serveur prépare la réponse, utilisé pour l'optimisation des performances

Le statut 100 Continue est souvent utilisé conjointement avec l'en-tête de requête Expect: 100-continue. Lorsqu'un client envoie cet en-tête, il attend une confirmation avant d'envoyer une charge utile importante. Cela évite le gaspillage de bande passante lorsque le serveur va rejeter la requête sur la base des seuls en-têtes.

Le 101 Switching Protocols est la pierre angulaire des connexions WebSocket. Lorsqu'un client envoie un en-tête Upgrade: websocket, le serveur répond avec 101 pour confirmer le changement de protocole de HTTP vers WebSocket, permettant une communication bidirectionnelle en temps réel.

Le 103 Early Hints est une addition relativement récente (RFC 8297) qui permet aux serveurs d'envoyer des indices au navigateur sur les ressources critiques (CSS, JavaScript, polices) qui seront nécessaires par la réponse finale. Cela permet au navigateur de commencer à précharger ces ressources avant que la réponse complète ne soit prête, améliorant les performances perçues.

2xx - Succès

Ces codes indiquent que la requête du client a été reçue, comprise et acceptée avec succès. C'est la catégorie que tout développeur espère voir.

Code Nom Description
200 OK Réponse standard de succès pour les requêtes GET, POST, PUT
201 Créé Ressource créée avec succès, généralement en réponse à POST
202 Accepté Requête acceptée pour traitement mais pas encore terminée
203 Info Non Officielle Réponse d'une source tierce, pas du serveur d'origine
204 Pas de Contenu Succès, mais aucun corps de réponse à retourner
205 Réinitialiser le Contenu Dit au navigateur d'effacer le formulaire/document actuel
206 Contenu Partiel Ressource partielle retournée, utilisée pour les requêtes de plage et téléchargements repris
207 Multi-Statut Codes de statut multiples pour ressources multiples (WebDAV)
208 Déjà Signalé Ressource déjà signalée (WebDAV)

Le 200 OK est le code de statut le plus courant. Il indique que la requête a réussi et que le corps de la réponse contient les données demandées. Pour les requêtes GET, le corps contient la représentation de la ressource. Pour les requêtes POST, il contient le résultat de l'action.

Le 201 Created devrait être retourné lorsqu'une nouvelle ressource est créée à la suite d'une requête POST ou PUT. La réponse devrait inclure un en-tête Location pointant vers l'URL de la ressource nouvellement créée. Par exemple, après la création d'un nouvel utilisateur, retournez 201 Created avec l'URL du profil utilisateur dans l'en-tête Location.

Le 204 No Content est utile pour les requêtes DELETE ou les mises à jour PUT où le corps de la réponse est vide. Il indique au client que l'opération a réussi mais qu'il n'y a rien à retourner. Le navigateur ne devrait pas changer sa vue de document actuelle.

3xx - Redirection

Ces codes indiquent que le client doit entreprendre une action supplémentaire pour compléter la requête, généralement en suivant une redirection vers une URL différente.

Code Nom Description
300 Choix Multiples Représentations multiples possibles, le client doit choisir
301 Déplacé de Façon Permanente La ressource a une nouvelle URL permanente, mettre à jour les favoris
302 Trouvé Redirection temporaire, continuer à utiliser l'URL originale à l'avenir
303 Voir Autre Rediriger vers une URL différente en utilisant la méthode GET
304 Non Modifié Ressource non modifiée, utiliser la version en cache
307 Redirection Temporaire Redirection temporaire préservant la méthode HTTP
308 Redirection Permanente Redirection permanente préservant la méthode HTTP

La distinction entre 301 et 302 est critique pour le SEO. Les moteurs de recherche traitent les redirections 301 comme permanentes, transférant la puissance de classement de l'URL originale vers la nouvelle URL. Une redirection 302 ne transfère pas la valeur SEO car l'URL originale est censée revenir.

Le 304 Not Modified est utilisé conjointement avec des en-têtes de requête conditionnelle comme If-Modified-Since ou If-None-Match (ETags). Lorsque le client a une version en cache d'une ressource, il peut demander au serveur si la ressource a changé. Si ce n'est pas le cas, le serveur retourne 304 sans corps, économisant la bande passante des deux côtés.

Les codes 307 et 308 préservent la méthode HTTP utilisée dans la requête originale, contrairement à 302 et 301 qui peuvent changer POST en GET. Cette distinction est importante pour les points de terminaison API où la préservation de la méthode de requête est cruciale.

4xx - Erreur Client

Ces codes indiquent que le client a envoyé une requête problématique. L'erreur est du côté client — le serveur fonctionne correctement.

Code Nom Description
400 Mauvaise Requête Syntaxe ou paramètres de requête invalides
401 Non Autorisé L'authentification est requise ou a échoué
402 Paiement Requis Réservé pour utilisation future, rarement implémenté
403 Interdit Client authentifié mais n'a pas la permission
404 Non Trouvé La ressource demandée n'existe pas
405 Méthode Non Autorisée La méthode HTTP n'est pas supportée pour cette URL
406 Non Acceptable Impossible de générer une réponse correspondant aux en-têtes Accept
407 Authentification Proxy Doit d'abord s'authentifier auprès du proxy
408 Délai de Requête Expiré Le serveur a expiré en attendant la requête
409 Conflit La requête entre en conflit avec l'état actuel du serveur
410 Parti Ressource supprimée définitivement, pas d'adresse de transfert
411 Longueur Requise L'en-tête Content-Length est requis
412 Condition Préalable Échouée Les en-têtes de requête conditionnelle ont été évalués à faux
413 Charge Utile Trop Grande Le corps de la requête dépasse les limites du serveur
414 URI Trop Long L'URL dépasse la longueur maximale autorisée par le serveur
415 Type Média Non Supporté Content-Type non supporté par le serveur
416 Plage Non Satisfaisable L'en-tête Range ne peut pas être satisfait
417 Attente Échouée L'en-tête Expect ne peut pas être satisfait
422 Entité Non Traitable Corps de requête syntaxiquement correct mais sémantiquement invalide
423 Verrouillé La ressource est verrouillée (WebDAV)
424 Dépendance Échouée Requête échouée car une autre requête a échoué (WebDAV)
426 Mise à Niveau Requise Le client devrait passer à un protocole différent
428 Condition Préalable Requise Le serveur d'origine exige que la requête soit conditionnelle
429 Trop de Requêtes Le client a dépassé les limites de débit
431 En-tête de Requête Trop Grand Les en-têtes dépassent la taille maximale
451 Indisponible pour Raisons Légales Ressource bloquée en raison d'exigences légales

Le 400 Bad Request est le fourre-tout des erreurs client. Utilisez-le lorsque le serveur ne peut pas traiter la requête en raison d'une syntaxe malformée, de paramètres de requête invalides ou d'un corps de requête malformé. Incluez toujours un message d'erreur descriptif dans le corps de la réponse pour aider les clients à résoudre le problème.

Le 401 Unauthorized est retourné lorsque le client n'a pas fourni de justificatifs d'authentification valides. La réponse devrait inclure un en-tête WWW-Authenticate indiquant le schéma d'authentification (Basic, Bearer, Digest, etc.) attendu par le serveur.

Le 403 Forbidden diffère du 401 en ce que le client est authentifié mais ne dispose pas des permissions suffisantes. Par exemple, un utilisateur normal essayant d'accéder à un point de terminaison administrateur devrait obtenir 403, pas 401.

Le 404 Not Found est le code de statut HTTP le plus connu. Il indique que le serveur ne peut pas trouver la ressource demandée. Attention à ne pas révéler si la ressource existe mais est cachée — retourner 404 pour les ressources inexistantes et interdites est une pratique de sécurité courante.

Le 409 Conflict est utile pour les API REST en cas de conflit de version. Par exemple, lorsqu'une requête PUT met à jour une ressource qui a été modifiée par un autre utilisateur depuis que le client l'a récupérée.

Le 429 Too Many Requests est essentiel pour la limitation de débit des API. Il devrait inclure un en-tête Retry-After indiquant combien de temps le client devrait attendre avant de faire une autre requête.

5xx - Erreur Serveur

Ces codes indiquent que le serveur a rencontré une erreur lors du traitement d'une requête valide. Le problème est du côté serveur.

Code Nom Description
500 Erreur Interne du Serveur Erreur serveur générique, aucun détail spécifique disponible
501 Non Implémenté Le serveur ne supporte pas la fonctionnalité demandée
502 Mauvaise Passerelle Le serveur amont a retourné une réponse invalide
503 Service Indisponible Serveur temporairement indisponible (surchargé ou en panne)
504 Délai de Passerelle Expiré Le serveur amont n'a pas répondu à temps
505 Version HTTP Non Supportée Le serveur ne supporte pas la version du protocole HTTP utilisée
506 Variante Aussi en Négociation Erreur de configuration du serveur dans la négociation de contenu
507 Stockage Insuffisant Le serveur ne peut pas stocker la représentation (WebDAV)
508 Boucle Détectée Le serveur a détecté une boucle infinie (WebDAV)
509 Limite de Bande Passante Dépassée Pas un statut officiel, utilisé par certains modules Apache
510 Non Étendu Des extensions supplémentaires sont requises pour la requête
511 Authentification Réseau Requise Le client doit s'authentifier pour accéder au réseau

Le 500 Internal Server Error est le fourre-tout des défaillances côté serveur. Il ne devrait jamais être retourné pour des requêtes client invalides — celles-ci devraient utiliser les codes 4xx. Une réponse 500 indique que quelque chose s'est mal passé dans la logique de traitement du serveur.

Le 502 Bad Gateway se produit typiquement lorsqu'un proxy ou un équilibreur de charge reçoit une réponse invalide d'un serveur amont. Par exemple, si un serveur d'application plante ou retourne une réponse malformée, le proxy inverse retourne 502 au client.

Le 503 Service Unavailable est utilisé lorsque le serveur est temporairement surchargé ou en maintenance. Incluez un en-tête Retry-After pour que les clients et robots sachent quand réessayer. On le voit couramment pendant les fenêtres de déploiement ou les pics de trafic.

Le 504 Gateway Timeout se produit lorsqu'un serveur dans une chaîne (par exemple, un proxy inverse parlant à un serveur d'application) ne reçoit pas de réponse en temps opportun d'un autre serveur. Le délai d'expiration par défaut est généralement de 30 à 120 secondes selon l'infrastructure.

Guide d'Utilisation des Codes de Statut

Scénario Code de Statut
Requête GET réussie 200
POST réussi (création) 201
DELETE réussi 204
Échec de validation de formulaire 422
Utilisateur non connecté 401
L'utilisateur manque de permission 403
Ressource non trouvée 404
Limite de débit dépassée 429
Plantage serveur 500
Point de terminaison API non encore implémenté 501
Maintenance temporaire 503

Meilleures Pratiques pour l'Utilisation des Codes de Statut HTTP

Utilisez toujours le code de statut le plus spécifique qui s'applique à votre situation. Retourner une erreur 500 générique quand un 503 ou 504 est plus approprié rend le débogage plus difficile pour les consommateurs d'API. Incluez des messages d'erreur descriptifs et des identifiants d'erreur uniques dans vos corps de réponse pour faciliter le débogage. Pour les API REST, envisagez également d'inclure un code d'erreur lisible par machine que les clients peuvent traiter programmatiquement. Enfin, assurez-vous que vos réponses d'erreur respectent le type de contenu demandé via la négociation de contenu — retournez JSON pour les clients API et HTML pour les pages d'erreur basées sur navigateur.

Utilisez l'outil Référence des Codes de Statut HTTP pour des consultations rapides chaque fois que vous avez besoin de vous rappeler la signification ou l'utilisation appropriée d'un code de statut HTTP.


About this article

Un guide de référence complet de tous les codes de statut HTTP de 100 à 599, avec explications et cas d'utilisation courants.


Related Articles


Related Tools

Help2Code Logo
Menu