Menu

Codes d'état HTTP

Référence consultable pour chaque code d'état HTTP avec des explications claires.

Par Nethanel Bar, Co-founder & CEO

Dernière mise à jour

Ready to actually learn to code?

Coddy teaches you by writing real code in your browser - interactive lessons, instant feedback, and AI help when you get stuck.

C'est quoi les codes de statut HTTP ?

Les codes de statut HTTP sont les nombres à trois chiffres qu'un serveur place en tête de chaque réponse pour résumer ce qu'il s'est passé. C'est grâce à eux que les navigateurs, clients, proxys et CDN savent s'ils doivent mettre en cache, rediriger, réessayer ou afficher une erreur à l'utilisateur.

Chaque code appartient à l'une des cinq classes définies par son premier chiffre : 1xx informationnel, 2xx succès, 3xx redirection, 4xx erreur côté client, 5xx erreur côté serveur. Une fois la classe identifiée, on devine généralement le sens global avant même de chercher le code précis.

La plupart des applis n'utilisent qu'un noyau réduit (200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 409, 422, 429, 500, 502, 503). Bien comprendre ce que chacun *signifie* - et savoir distinguer 401 Unauthorized de 403 Forbidden, ou 301 Moved Permanently de 302 Found - c'est ce qui fait la différence entre un dev backend correct et un dev backend solide.

Ce que vous allez apprendre avec cette référence

  • Le premier chiffre donne toujours la classe : 1xx info, 2xx succès, 3xx redirection, 4xx erreur client, 5xx erreur serveur.
  • Les codes de statut font *partie du contrat* d'une API - les clients doivent s'appuyer dessus pour brancher leur logique, pas parser un message d'erreur dans le corps.
  • 4xx veut dire que le client a fait quelque chose de travers (mauvaise entrée, auth manquante, ressource inexistante). 5xx veut dire que le serveur a planté, peu importe ce que le client a envoyé.

Comment utiliser la référence pas à pas

  1. Cherchez par code ou par mot-clé

    Tapez un nombre (404, 429) ou un mot-clé (auth, redirect, rate limit) et la liste se filtre en direct.

  2. Filtrez par classe

    Utilisez les puces de classe (1xx, 2xx, 3xx, 4xx, 5xx) pour réduire la liste quand vous explorez plutôt que vous ne cherchez précisément.

  3. Lisez l'explication en clair

    Chaque entrée précise quand le code est renvoyé, comment le client réagit en général, et la cause la plus fréquente.

  4. Comparez les codes proches

    Suivez les liens « voir aussi » entre les paires piégeuses (401 vs 403, 301 vs 302) pour choisir le bon code dans votre API.

Les classes de codes de statut HTTP

Les cinq classes de codes HTTP et leur signification d'un coup d'œil. Définies par la RFC 9110 et enregistrées dans le registre IANA des codes HTTP.

ClasseSignificationCodes courants
1xx InformationnelRequête reçue, traitement en cours100, 101, 103
2xx SuccèsLa requête a fonctionné200, 201, 204, 206
3xx RedirectionVa voir ailleurs301, 302, 304, 307, 308
4xx Erreur clientQuelque chose cloche dans la requête400, 401, 403, 404, 409, 422, 429
5xx Erreur serveurLe serveur n'a pas réussi à traiter une requête pourtant valide500, 502, 503, 504

Les codes HTTP qu'il faut connaître

200 OK vs 201 Created vs 204 No Content

200 OK

La réponse classique « tout s'est bien passé », avec un corps de réponse.

201 Created

Une nouvelle ressource a été créée suite à la requête - typiquement après un POST.

204 No Content

Succès, mais sans corps. Fréquent après un DELETE ou un PUT qui n'a rien à renvoyer.

Tous les trois sont des codes de succès - la différence porte sur ce que la réponse transporte. 201 doit inclure un en-tête Location qui pointe vers la nouvelle ressource ; 204 est vide par définition.

301 Moved Permanently vs 302 Found

301

Redirection permanente. Les navigateurs et moteurs de recherche s'en souviennent ; l'ancienne URL est de fait morte.

302

Redirection temporaire. Les navigateurs revérifient l'URL d'origine à chaque requête ; les favoris restent sur l'ancienne URL.

Utilisez 301 quand vous avez réellement déplacé une ressource (changement de marque, refonte d'URL). Utilisez 302 pour des redirections de courte durée : tests A/B, redirection après login, page de maintenance.

401 Unauthorized vs 403 Forbidden

401

Vous n'êtes pas authentifié. Le serveur ne sait pas qui vous êtes.

403

Le serveur sait qui vous êtes, mais vous n'avez pas le droit d'accéder à cette ressource.

Petit moyen mnémotechnique : 401 = « je ne sais pas qui tu es », 403 = « je sais qui tu es, et c'est non ».

500 vs 502 vs 503 vs 504

500

Erreur serveur générique - votre code a levé une exception non gérée.

502

Bad gateway - un proxy en amont (CDN, load balancer) n'a pas réussi à joindre le serveur derrière.

503

Service unavailable - le serveur tourne mais il est saturé ou en maintenance.

504

Gateway timeout - un proxy a bien atteint le serveur en amont mais n'a pas reçu de réponse à temps.

Les quatre sont des erreurs serveur, mais elles racontent des histoires très différentes au moment du debug. 500 pointe vers votre appli ; 502 et 504 vers le chemin réseau ; 503 vers la capacité.

Erreurs fréquentes avec les codes de statut

  • Renvoyer 200 OK avec {"error": "..."} dans le corps. Les codes de statut font partie du contrat - utilisez le bon (400, 404, 500) pour que les clients puissent brancher dessus.
  • Utiliser 401 pour des erreurs de permission. 401 concerne l'authentification ; un refus de permission, c'est 403.
  • Renvoyer 200 pour une ressource fraîchement créée au lieu de 201 accompagné d'un en-tête Location.

FAQ sur les codes de statut HTTP

Que veut dire HTTP 404 ?
404 Not Found signifie que le serveur a bien compris la requête, mais qu'aucune ressource n'existe à cette URL. La cause la plus fréquente : un mauvais chemin, une ressource supprimée ou une URL mal tapée.
Quelle est la différence entre 401 et 403 ?
401 Unauthorized veut dire que vous n'êtes pas authentifié - le serveur ne sait pas qui vous êtes. 403 Forbidden veut dire que vous êtes authentifié mais que vous n'avez pas la permission d'accéder à la ressource. Envoyer d'autres identifiants peut résoudre un 401 ; ça ne corrigera pas un 403.
Quelle est la différence entre 301 et 302 ?
301 Moved Permanently est une redirection permanente - navigateurs et moteurs de recherche mettent à jour leurs références. 302 Found est une redirection temporaire - les clients continuent à interroger l'URL d'origine. Utilisez 301 pour un déménagement définitif, 302 pour un détour temporaire.
Que veut dire HTTP 500 ?
500 Internal Server Error est une erreur générique côté serveur, levée la plupart du temps quand une exception non gérée remonte jusqu'en haut. Le client n'a rien fait de mal - c'est votre serveur qui a échoué à traiter une requête pourtant valide.
Faut-il toujours utiliser un code de statut précis ?
Oui. Renvoyer un 200 OK générique pour des erreurs, ou un 500 à toutes les sauces, rend l'API pénible à utiliser. Choisissez le code le plus précis qui colle à la situation - clients, proxys, monitoring et logique de retry s'appuient tous sur le code de statut.
Que veut dire HTTP 429 ?
429 Too Many Requests est renvoyé quand un client a atteint une limite de débit. La réponse devrait inclure un en-tête Retry-After indiquant au client à partir de quand il peut réessayer sans risque.

En savoir plus

Autres outils pour développeurs

Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER