HTTP
Codes d'état HTTP
Recherche…
Introduction
Dans HTTP, les codes d'état sont un mécanisme lisible par une machine qui indique le résultat d'une demande précédemment émise. De RFC 7231, sec. 6 : "L'élément de code d'état est un code entier à trois chiffres donnant le résultat de la tentative de comprendre et de satisfaire la demande."
La grammaire formelle permet que les codes soient compris entre 000
et 999
. Cependant, seule la plage comprise entre 100
et 599
a attribué une signification.
Remarques
HTTP / 1.1 définit un nombre de codes d'état HTTP numériques qui apparaissent dans la ligne d'état - la première ligne d'une réponse HTTP - pour résumer ce que le client doit faire avec la réponse.
Le premier chiffre d'un code d'état définit la classe de la réponse:
-
1xx
informationnel -
2xx
demande de client réussie -
3xx
Request redirected - une autre action est nécessaire, telle qu'une nouvelle demande - Erreur client
4xx
- ne pas répéter la même demande - Erreur
5xx
Server - peut-être réessayer
En pratique, il n'est pas toujours facile de choisir le code de statut le plus approprié.
500 Erreur de serveur interne
Une erreur de serveur interne HTTP 500 est un message général indiquant que le serveur a rencontré quelque chose d'inattendu. Les applications (ou le serveur Web global) doivent utiliser un 500 en cas d'erreur lors du traitement de la demande, c'est-à-dire qu'une exception est levée ou qu'une condition de la ressource empêche le processus de se terminer.
Exemple de ligne d'état:
HTTP/1.1 500 Internal Server Error
404 Introuvable
HTTP 404 non trouvé signifie que le serveur n'a pas pu trouver le chemin en utilisant l'URI demandé par le client.
HTTP/1.1 404 Not Found
Le plus souvent, le fichier demandé a été supprimé, mais il peut parfois s'agir d'une mauvaise configuration de la racine du document ou d'un manque d'autorisations (bien que les autorisations manquantes déclenchent plus fréquemment HTTP 403 Forbidden).
Par exemple, Microsoft IIS écrit 404.0 (0 est le sous-statut) dans ses fichiers journaux lorsque le fichier demandé a été supprimé. Mais lorsque la requête entrante est bloquée par des règles de filtrage des requêtes, elle écrit 404.5-404.19 dans des fichiers journaux en fonction de la règle qui bloque la requête. Une référence de code d'erreur plus détaillée est disponible sur le support Microsoft .
Refuser l'accès aux fichiers protégés
Utilisez 403 Interdit lorsqu'un client a demandé une ressource inaccessible en raison des contrôles d'accès existants. Par exemple, si votre application dispose d'un itinéraire /admin
qui ne doit être accessible qu'aux utilisateurs disposant de droits d'administration, vous pouvez utiliser 403 lorsqu'un utilisateur normal demande la page.
GET /admin HTTP/1.1
Host: example.com
HTTP/1.1 403 Forbidden
Demande réussie
Envoyez une réponse HTTP avec le code d'état 200
pour indiquer une demande réussie. La ligne d'état de réponse HTTP est alors:
HTTP/1.1 200 OK
Le texte d'état OK
n'est qu'informatif. Le corps de la réponse (charge utile du message) doit contenir une représentation de la ressource demandée. S'il n'y a pas de représentation 201 Aucun contenu ne doit être utilisé.
Répondre à une demande conditionnelle de contenu en cache
Envoyer un état de réponse 304 non modifié à partir de l'envoi du serveur en réponse à une demande du client contenant des en If-Modified-Since
têtes If-Modified-Since
et If-None-Match
, si la ressource de demande n'a pas changé.
Par exemple, si une demande de client pour une page Web inclut l'en-tête If-Modified-Since: Fri, 22 Jul 2016 14:34:40 GMT
et que la page n'a pas été modifiée depuis, répondez avec la ligne d'état HTTP/1.1 304 Not Modified
.
Top 10 HTTP Status Code
2xx succès
- 200 OK - Réponse standard pour les requêtes HTTP réussies.
- 201 Créé - La demande a été satisfaite, entraînant la création d'une nouvelle ressource.
- 204 No Content - Le serveur a traité la demande avec succès et ne renvoie aucun contenu.
Redirection 3xx
- 304 Not Modified - Indique que la ressource n'a pas été modifiée depuis la version spécifiée par les en
If-Modified-Since
têtes de requêteIf-Modified-Since
ouIf-None-Match
.
Erreur client 4xx
- 400 Requête incorrecte - Le serveur ne peut pas ou ne veut pas traiter la demande en raison d'une erreur apparente du client (par exemple, syntaxe de requête mal formée, taille trop grande, cadrage de message non valide ou acheminement de requête trompeuse).
- 401 Unauthorized - Similaire à 403 Interdit , mais spécifiquement utilisé lorsque l'authentification est requise et a échoué ou n'a pas encore été fournie. La réponse doit inclure un champ d'en
WWW-Authenticate
têteWWW-Authenticate
contenant un défi applicable à la ressource demandée. - 403 Interdit - La demande était une requête valide, mais le serveur refuse de répondre. L'utilisateur peut être connecté mais ne dispose pas des autorisations nécessaires pour la ressource.
- 404 Introuvable - La ressource demandée est introuvable, mais peut être disponible ultérieurement. Les demandes ultérieures du client sont autorisées.
- 409 Conflit - Indique que la demande n'a pas pu être traitée en raison d'un conflit dans la demande, tel qu'un conflit de modification entre plusieurs mises à jour simultanées.
Erreur serveur 5xx
- 500 Internal Server Error - Un message d'erreur générique, donné lorsqu'une condition inattendue s'est produite et qu'aucun message plus spécifique n'est approprié.