Les codes de statut : 200, 301, 404, 500 et les autres
7 min · Débutant · 7 août 2026
Une réponse commence toujours par un code
Symétriquement à la requête vue au chapitre précédent, une réponse HTTP commence par une ligne de statut :
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
<!doctype html>... Le nombre à trois chiffres (200 ici) est le code de statut. Son premier chiffre indique sa famille, et donne à lui seul une bonne partie de l’information :
1xx : information (rarement visible, traitement en cours)
2xx : succès (la requête a été traitée comme prévu)
3xx : redirection (la ressource se trouve ailleurs)
4xx : erreur côté client (la requête elle-même pose problème)
5xx : erreur côté serveur (la requête était correcte, le serveur a échoué) Les codes les plus fréquents
- 200 OK : la requête a réussi, la réponse contient la ressource demandée.
- 301 Moved Permanently : la ressource a définitivement déménagé à une nouvelle adresse (indiquée dans l’en-tête
Location). C’est ce code que ce site utilise pour rediriger/vers/fr/. - 404 Not Found : aucune ressource ne correspond au chemin demandé.
- 500 Internal Server Error : une erreur inattendue est survenue côté serveur pendant le traitement, sans plus de détail par défaut.
401 contre 403 : une confusion fréquente
Ces deux codes se ressemblent, mais ne signalent pas la même chose :
- 401 Unauthorized : la requête n’est pas authentifiée (ou l’authentification fournie est invalide). Le message implicite est « identifie-toi ».
- 403 Forbidden : le serveur sait qui tu es, mais refuse quand même l’accès. Le message implicite est « tu n’as pas le droit, même identifié ».
Astuce
Ce détail a une valeur pratique en dehors de ce cours : face à une page qui répond 403 sur une ressource, mieux vaut chercher du côté des permissions que de l’authentification. Un 401 orienterait la recherche différemment.
Pourquoi cette distinction compte
Un serveur mal configuré peut renvoyer des codes trompeurs, par exemple un 200 même en cas d’erreur applicative, ce qui casse la sémantique du protocole pour n’importe quel outil (ou humain) qui l’interprète. À l’inverse, des codes cohérents facilitent le diagnostic, y compris pour repérer un comportement anormal révélateur d’une faille, comme on le verra dans le cours sur les injections SQL.