Réponses:
Le champ d'en-tête d'entité Content-Length indique la taille du corps d'entité, en nombre décimal d'OCTET, envoyé au destinataire ou, dans le cas de la méthode HEAD, la taille du corps d'entité qui aurait été envoyé avait la demande a été un GET.
Peu importe le type de contenu.
Extension au poste ci-dessous .
Il s'agit du 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 vierge sous les en-têtes.
L'en- Content-Length
tête est un nombre indiquant la longueur d'octet exacte du corps HTTP. Le corps HTTP démarre 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- Content-Length
tête est utilisé pour HTTP 1.1 afin que le destinataire sache quand la réponse actuelle * est terminée, de sorte que la connexion peut être réutilisée pour une autre demande .
* ... ou demande, dans le cas de méthodes de demande qui ont un corps, comme POST, PUT ou PATCH
Alternativement, l'en- Content-Length
tête peut être omis et un en- Transfer-Encoding
tête fragmenté peut être utilisé.
Si les deux Content-Length
et les en- Transfer-Encoding
têtes sont manquants, à la fin de la réponse, la connexion doit être fermée.
La ressource suivante est un guide que j'ai trouvé très utile pour en savoir plus sur HTTP:
Un octet fait 8 bits. Content-length est le nombre d'octets que le corps du message représente.
OCTET
ici a une signification très spécifique qui signifie <toute séquence de données de 8 bits>. Voir la définition sur w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2
D'ici :
Le champ d'en-tête d'entité Content-Length indique la taille du corps d'entité, en nombre décimal d'OCTET, envoyé au destinataire ou, dans le cas de la méthode HEAD, la taille du corps d'entité qui aurait été envoyé avait la demande a été un 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, sauf si cela est 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 aucune longueur de contenu n'est donnée.
Notez que la signification de ce champ est significativement différente de la définition correspondante dans MIME, où il s'agit d'un champ facultatif utilisé dans le type de contenu "message / corps externe". En HTTP, il DEVRAIT être envoyé chaque fois que la longueur du message peut être déterminée avant d'être transféré, sauf si cela est 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é "
"Content-length": "3495"
De cette page
De loin, l'utilisation la plus courante de POST consiste à 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 encodées URL (voici une note sur l'encodage URL). Le script CGI reçoit le corps du message via STDIN et le décode. Voici une soumission de formulaire typique, en utilisant POST:
POST /path/script.cgi HTTP/1.0 From: frog@jmarshall.com User-Agent: HTTPTool/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 32
Selon les spécifications :
Le champ d'en-tête d'entité Content-Length indique la taille du corps d'entité, en nombre décimal d'OCTET, envoyé au destinataire ou, dans le cas de la méthode HEAD, la taille du corps d'entité qui aurait été envoyé avait la demande a été un 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, sauf si cela est 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 aucune longueur de contenu n'est donnée.
Notez que la signification de ce champ est significativement différente de la définition correspondante dans MIME, où il s'agit d'un champ facultatif utilisé dans le type de contenu "message / corps externe". En HTTP, il DEVRAIT être envoyé chaque fois que la longueur du message peut être déterminée avant d'être transféré, sauf si cela est interdit par les règles de la section 4.4.
Le champ d'en-tête d'entité Content-Length indique la taille du corps d'entité, en nombre décimal d'OCTET, envoyé au destinataire ou, dans le cas de la méthode HEAD, la taille du corps d'entité qui aurait été envoyé avait la demande a été un GET.
Content-Length = "Content-Length" ":" 1 * CHIFFRE
Un exemple est
Longueur du contenu: 1024
Les applications DEVRAIENT utiliser ce champ pour indiquer la longueur de transfert du corps du message.
En PHP, vous utiliseriez quelque chose comme ça.
header("Content-Length: ".filesize($filename));
Dans le cas de "Content-Type: 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.
Considérez si vous avez des en-têtes tels que:
content-encoding: gzip
content-length: 52098
content-type: text/javascript; charset=UTF-8
La longueur du contenu est la taille du corps du message compressé , en "octets" (c'est-à-dire en unités de 8 bits, qui se trouvent être des "octets" pour tous les ordinateurs modernes).
La taille du corps du message peut être autre chose, peut-être 150280 octets.
Le nombre de caractères peut être à nouveau différent, peut-être 150231 caractères, car certains caractères Unicode utilisent plusieurs octets (notez que l'UTF-8 est un codage standard).
Ainsi, des nombres différents selon que vous vous souciez de la quantité de données transmises, de la quantité de données détenues ou du nombre de symboles visibles. Bien sûr, rien ne garantit que ces en-têtes seront fournis.