web-dev-qa-db-fra.com

Qu'est-ce que le champ "Content-Length" dans l'en-tête HTTP?

Qu'est-ce que ça veut dire?

  1. Nombre d'octets de la chaîne de contenu codée avec le codage spécifié dans l'en-tête.
  2. Nombre de caractères de la chaîne de contenu.

Surtout dans le cas de "Content-Type: application/x-www-form-urlencoded".

251
Eonil

rfc2616

The Content-Length entity-header field indicates the size of the entity-body,
in decimal number of OCTETs, sent to the recipient or, in the case of the HEAD
method, the size of the entity-body that would have been sent had the request
been a GET. 

Peu importe le type de contenu.

Extension à poste ci-dessous .

209
WhirlWind

C'est le nombre d'octets de données dans le corps de la demande ou de la réponse. Le corps est la partie qui vient après la ligne blanche en dessous des en-têtes.

242
Tom Cabanski

L'en-tête Content-Length est un nombre indiquant la longueur en octets exacte du corps HTTP. Le corps HTTP commence immédiatement après la première ligne vide trouvée après la ligne de départ et les en-têtes.

En général, l'en-tête Content-Length est utilisé pour HTTP 1.1 afin que le destinataire puisse savoir quand la réponse en cours* a terminé, donc la connexion peut être réutilisée pour une autre demande .

* ... ou request, dans le cas de méthodes de requête ayant un corps, tel que POST, PUT ou PATCH

Vous pouvez également en-tête Content-Length peut être omis et un chunked en-tête Transfer-Encoding peut être utilisé.

Si les en-têtes Content-Length et Transfer-Encoding sont manquants, la connexion doit être fermée à la fin de la réponse.

56
spender

Un octet correspond à 8 bits. La longueur du contenu est le nombre d'octets que le corps du message représente.

42
itsproject

à partir d'ici :

Le champ d'en-tête d'entité Content-Length indique la taille du corps de l'entité, en nombre décimal d'OCTET, envoyé au destinataire ou, dans le cas de la méthode HEAD, la taille du corps de l'entité. cela aurait été envoyé si la demande avait été une GET.

   Content-Length    = "Content-Length" ":" 1*DIGIT

Un exemple est

   Content-Length: 3495

Les applications DEVRAIENT utiliser ce champ pour indiquer la longueur de transfert du corps du message, à moins que cela ne soit interdit par les règles de section 4.4 .

Toute longueur de contenu supérieure ou égale à zéro est une valeur valide. La section 4.4 décrit comment déterminer la longueur d'un corps de message si Content-Length n'est pas fourni.

Notez que la signification de ce champ est très différente de la définition correspondante dans MIME, où il s'agit d'un champ facultatif utilisé dans le type de contenu "message/external-body". Dans HTTP, il DEVRAIT être envoyé chaque fois que la longueur du message peut être déterminée avant d'être transférée, à moins que cela ne soit interdit par les règles de la section 4.4.

Mon interprétation est que cela signifie la longueur "sur le fil", c'est-à-dire la longueur du contenu * encodé "

24
Daniel Renshaw

De cette page

L'utilisation la plus courante de POST consiste, de loin, à soumettre des données de formulaire HTML à des scripts CGI. Dans ce cas, l'en-tête Content-Type: est généralement application/x-www-form-urlencoded, et l'en-tête Content-Length: donne la longueur des données de formulaire codées par URL (voici une note sur le codage d'URL). Le script CGI reçoit le corps du message via STDIN et le décode. Voici une soumission de formulaire typique, à l'aide de POST:

POST /path/script.cgi HTTP/1.0
From: [email protected]
User-Agent: HTTPTool/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 32
7
Theresa

Selon le spec :

Le champ d'en-tête d'entité Content-Length indique la taille du corps de l'entité, en nombre décimal d'OCTET, envoyé au destinataire ou, dans le cas de la méthode HEAD, la taille du corps de l'entité. cela aurait été envoyé si la demande avait été une GET.

Content-Length    = "Content-Length" ":" 1*DIGIT

Un exemple est

Content-Length: 3495

Les applications DEVRAIENT utiliser ce champ pour indiquer la longueur de transfert du corps du message, à moins que cela ne soit interdit par les règles de la section 4.4.

Toute longueur de contenu supérieure ou égale à zéro est une valeur valide. La section 4.4 décrit comment déterminer la longueur d'un corps de message si Content-Length n'est pas fourni.

Notez que la signification de ce champ est très différente de la définition correspondante dans MIME, où il s'agit d'un champ facultatif utilisé dans le type de contenu "message/external-body". Dans HTTP, il DEVRAIT être envoyé chaque fois que la longueur du message peut être déterminée avant d'être transférée, à moins que cela ne soit interdit par les règles de la section 4.4.

4
Bozhidar Batsov

Le champ d'en-tête d'entité Content-Length indique la taille du corps de l'entité, en nombre décimal d'OCTET, envoyé au destinataire ou, dans le cas de la méthode HEAD, la taille du corps de l'entité. cela aurait été envoyé si la demande avait été une GET.

Content-Length = "Content-Length" ":" 1 * DIGIT

Un exemple est

Longueur du contenu: 1024

Les applications DEVRAIENT utiliser ce champ pour indiquer la longueur de transfert du corps du message.

Dans PHP, vous utiliseriez quelque chose comme ceci.

header("Content-Length: ".filesize($filename));

Dans le cas de "Type de contenu: application/x-www-form-urlencoded", les données codées sont envoyées à l'agent de traitement désigné afin que vous puissiez définir la longueur ou la taille des données que vous allez publier.

2
Gaurav Jassal