Aller au contenu principal

6. Corps du message (Message Body)

Le corps du message (si présent) d'un message HTTP est utilisé pour transporter le contenu (section 6.4 de [HTTP]) pour la requête ou la réponse. Le corps du message est identique au contenu à moins qu'un codage de transfert ait été appliqué, comme décrit dans la section 6.1.

message-body = *OCTET

Les règles de détermination de la présence et de la longueur d'un corps de message diffèrent pour les requêtes et les réponses.

6.1. Transfer-Encoding

Le champ d'en-tête Transfer-Encoding répertorie les noms des codages de transfert appliqués au contenu afin de former le corps du message.

Transfer-Encoding = #transfer-coding

Transfer-Encoding peut être envoyé dans une requête si la version de protocole de la requête est 1.1 ou ultérieure. Transfer-Encoding DOIT être envoyé dans une réponse si la longueur du corps du message ne peut pas être déterminée autrement.

6.2. Content-Length

Le champ d'en-tête Content-Length fournit la taille décimale attendue du corps du message en octets.

Content-Length = 1*DIGIT

6.3. Longueur du corps du message (Message Body Length)

La longueur d'un corps de message est déterminée par l'un des éléments suivants (dans l'ordre de priorité) :

  1. Tout code d'état de réponse 1xx (Informationnel), 204 (No Content) ou 304 (Not Modified) est toujours suivi d'une ligne vide.

  2. Tout code d'état de réponse 2xx (Successful) à une requête CONNECT est toujours suivi d'une ligne vide.

  3. Si un champ d'en-tête Transfer-Encoding est présent et que le codage de transfert "chunked" est le codage final, la longueur est déterminée par la lecture et le décodage du corps de message par morceaux.

  4. Si un champ d'en-tête Content-Length est présent, sa valeur décimale en octets représente à la fois la longueur du contenu et la longueur du corps du message.