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 en User-Agent tête de requête User-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.


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow