HTTP
Réponses HTTP
Recherche…
Paramètres
Code de statut | Phrase de motivation - Description |
---|---|
100 | Continuer - le client doit envoyer la partie suivante d'une requête en plusieurs parties. |
101 | Changer de protocole - le serveur modifie la version ou le type de protocole utilisé dans cette communication. |
200 | OK - le serveur a reçu et complété la demande du client. |
201 | Créé - le serveur a accepté la demande et créé une nouvelle ressource, disponible sous l'URI dans l'en-tête Location . |
202 | Accepté - le serveur a reçu et accepté la demande du client, mais il n'a pas encore démarré ni terminé le traitement. |
203 | Informations non autorisées - le serveur renvoie des données pouvant être un sous-ensemble ou un surensemble des informations disponibles sur le serveur d'origine. Principalement utilisé par les mandataires. |
204 | Pas de contenu - utilisé à la place de 200 (OK) lorsqu'il n'y a pas de corps dans la réponse. |
205 | Réinitialiser le contenu - identique à 204 (aucun contenu), mais le client doit recharger la vue de document active. |
206 | Contenu partiel - utilisé à la place de 200 (OK) lorsque le client a demandé un en-tête Range . |
300 | Choix multiples - la ressource demandée est disponible sur plusieurs URI et le client doit rediriger la demande vers un URI spécifié dans la liste du corps du message. |
301 | Déplacé de manière permanente - la ressource demandée n'est plus disponible sur cet URI et le client doit rediriger cette requête et toutes les futures requêtes vers l'URI spécifié dans l'en-tête Location . |
302 | Trouvé - la ressource réside temporairement sous un URI différent. Cette demande doit être redirigée sur la confirmation de l'utilisateur vers l'URI dans l'en-tête Location , mais les futures demandes ne doivent pas être modifiées. |
303 | Voir Autres - très similaire à 302 (trouvé), mais ne nécessite pas de saisie de l'utilisateur pour rediriger vers l'URI fourni. L'URI fourni doit être récupéré avec une requête GET. |
304 | Non modifié - le client a envoyé un en If-Modified-Since tête If-Modified-Since ou similaire, et la ressource n'a pas été modifiée depuis ce point; le client doit afficher une copie en cache de la ressource. |
305 | Use Proxy - La ressource demandée doit être à nouveau demandée via le proxy spécifié dans le champ d'en-tête Location . |
307 | Redirect temporaire - identique à 302 (trouvé), mais les clients HTTP 1.0 ne prennent pas en charge 307 réponses. |
400 | Mauvaise demande - le client a envoyé une demande mal formée contenant des erreurs de syntaxe et doit modifier la demande pour corriger ceci avant de le répéter. |
401 | Non autorisé - la ressource demandée n'est pas disponible sans authentification. Le client peut répéter la demande en utilisant un en-tête d' Authorization pour fournir des détails d'authentification. |
402 | Paiement requis - code de statut réservé, non spécifié, à utiliser par les applications nécessitant un abonnement utilisateur pour afficher le contenu. |
402 | Interdit - le serveur comprend la requête, mais refuse de la remplir en raison des contrôles d'accès existants. La demande ne doit pas être répétée. |
404 | Introuvable - aucune ressource disponible sur ce serveur ne correspond à l'URI demandé. Peut être utilisé à la place de 403 pour éviter d'exposer les détails du contrôle d'accès. |
405 | Méthode non autorisée - la ressource ne prend pas en charge la méthode de requête (verbe HTTP); l'en-tête Allow liste les méthodes de requête acceptables. |
406 | Non acceptable - La ressource possède des caractéristiques qui violent les en-têtes d'acceptation envoyés dans la demande. |
407 | Authentification proxy requise - similaire à 401 (non autorisé), mais indique que le client doit d'abord s'authentifier auprès du proxy intermédiaire. |
408 | Délai d'expiration de la demande - le serveur attendait une autre demande du client, mais aucune n'était fournie dans un délai acceptable. |
409 | Conflit - la demande n'a pas pu être complétée car elle était en conflit avec l'état actuel de la ressource. |
410 | Gone - similaire à 404 (non trouvé), mais indique un retrait permanent. Aucune adresse de transfert n'est disponible. |
411 | Longueur requise - le client n'a pas spécifié d'en Content-Length tête Content-Length valide et doit le faire avant que le serveur accepte cette demande. |
412 | Condition préalable Echec - la ressource n'est pas disponible avec toutes les conditions spécifiées par les en-têtes conditionnels envoyés par le client. |
413 | Entité de demande trop grande - le serveur est actuellement incapable de traiter un corps de message de la longueur que le client a envoyé. |
414 | Request-URI Too Long - Le serveur refuse la requête car l'URI de demande est plus long que ce que le serveur est prêt à interpréter. |
415 | Type de support non pris en charge - le serveur ne prend pas en charge le type MIME ou de média spécifié par le client et ne peut pas traiter cette demande. |
416 | Plage demandée non satisfaite - le client a demandé une plage d'octets, mais le serveur ne peut pas fournir de contenu à cette spécification. |
417 | Echec de l'attente - les contraintes spécifiées par le client dans l'en-tête Expect que le serveur ne peut pas rencontrer. |
500 | Erreur de serveur interne - le serveur a rencontré une condition ou une erreur inattendue qui l'empêche de répondre à cette requête. |
501 | Non implémenté - le serveur ne prend pas en charge la fonctionnalité requise pour exécuter la demande. Généralement utilisé pour indiquer une méthode de requête qui n'est prise en charge sur aucune ressource. |
502 | Passerelle incorrecte - le serveur est un proxy et a reçu une réponse non valide du serveur en amont lors du traitement de cette requête. |
503 | Service indisponible - le serveur est soumis à une charge élevée ou est en cours de maintenance, et n'a pas la capacité de répondre à cette demande pour le moment. |
504 | Délai d'expiration de la passerelle - le serveur est un proxy et n'a pas reçu de réponse du serveur en amont à temps. |
505 | Version HTTP non prise en charge - le serveur ne prend pas en charge la version du protocole HTTP avec laquelle le client a fait sa demande. |
Format de réponse de base
Lorsqu'un serveur HTTP reçoit une requête HTTP bien formée, il doit traiter les informations contenues dans la demande et renvoyer une réponse au client. Une simple réponse HTTP 1.1 peut ressembler à l'une des suivantes, généralement suivie d'un certain nombre de champs d'en-tête et éventuellement d'un corps de réponse:
HTTP/1.1 200 OK \r\n
HTTP/1.1 404 Not Found \r\n
HTTP/1.1 503 Service Unavailable \r\n
Une simple réponse HTTP 1.1 a ce format:
HTTP-Version Status-Code Reason-Phrase CRLF
Comme dans une requête, HTTP-Version
indique la version du protocole HTTP utilisée; pour HTTP 1.1, cela doit toujours être la chaîne HTTP/1.1
.
Status-Code
est un Status-Code
trois chiffres qui indique l'état de la demande du client. Le premier chiffre de ce code est la classe de statut , qui place le code de statut dans l'une des 5 catégories de réponse [1] :
-
1xx
Informational - le serveur a reçu la demande et le traitement se poursuit -
2xx
Success - le serveur a accepté et traité la demande - Redirection
3xx
- une action supplémentaire est nécessaire chez le client pour compléter la demande - Erreurs client
4xx
- le client a envoyé une requête mal formée ou ne pouvant être satisfaite -
5xx
erreurs de serveur - la requête était valide, mais le serveur ne peut pas le remplir pour le moment
Reason-Phrase
est une courte description du code d'état. Par exemple, le code 200
a une phrase de raison de OK
; le code 404
a une phrase Not Found
. Une liste complète des phrases de motif est disponible dans Paramètres, ci-dessous ou dans la spécification HTTP .
La ligne se termine par un retour chariot - un saut de ligne, généralement représenté par \r\n
.
En-têtes supplémentaires
Comme une requête HTTP, une réponse HTTP peut inclure des en-têtes supplémentaires pour modifier ou augmenter la réponse fournie.
Une liste complète des en-têtes disponibles est définie au §6.2 de la spécification . Les en-têtes les plus couramment utilisés sont:
-
Server
, qui fonctionne comme un enUser-Agent
tête de requêteUser-Agent
pour le serveur; -
Location
utilisé sur les réponses d'état 201 et 3xx pour indiquer un URI à rediriger; et -
ETag
, qui est un identificateur unique pour cette version de la ressource renvoyée pour permettre aux clients de mettre en cache la réponse.
Les en-têtes de réponse viennent après la ligne d'état et, comme avec les en- têtes de requête, sont formés comme suit:
Name: Value CRLF
Name
fournit le nom de l'en-tête, tel que ETag
ou Location
, et Value
fournit la valeur définie par le serveur pour cet en-tête. La ligne se termine par un CRLF.
Une réponse avec des en-têtes peut ressembler à ceci:
HTTP/1.1 201 Created \r\n
Server: WEBrick/1.3.1 \r\n
Location: http://example.com/files/129742 \r\n
Corps de message
Comme avec les corps de requête , les réponses HTTP peuvent contenir un corps de message. Cela fournit des données supplémentaires que le client traitera. Notamment, 200 réponses OK à une requête GET bien formée doivent toujours fournir un corps de message contenant les données demandées. (S'il n'y en a pas, 204 No Content est une réponse plus appropriée).
Un corps de message est inclus après tous les en-têtes et un double CRLF. Comme pour les requêtes, sa longueur en octets doit être indiquée avec l'en Content-Length
tête Content-Length
. Une réponse réussie à une demande GET peut donc ressembler à ceci:
HTTP/1.1 200 OK\r\n
Server: WEBrick/1.3.1\r\n
Content-Length: 39\r\n
ETag: 4f7e2ed02b836f60716a7a3227e2b5bda7ee12c53be282a5459d7851c2b4fdfd\r\n
\r\n
Nobody expects the Spanish Inquisition.