Quel est 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 l'encodage 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".

212
demandé sur Eonil 2010-05-05 17:02:10

8 réponses

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. 

, Il n'a pas d'importance ce que le content-type est.

Extension à post ci-dessous .

177
répondu WhirlWind 2017-05-23 12:10:48

C'est le nombre d'octets de données dans le corps de la requête ou de la réponse. Le corps est la partie qui vient après la ligne vide sous les en-têtes.

223
répondu Tom Cabanski 2010-05-05 13:05:14

L'en-tête Content-Length est un nombre indiquant la longueur exacte de L'octet 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.

Généralement, l'en-tête Content-Length est utilisé pour HTTP 1.1 afin que la partie destinataire sache quand la réponse actuelle* la connexion peut donc être réutilisée pour une autre requête .

* ...ou request, dans le cas de méthodes de requête qui ont un corps, tel que le courrier, mettre ou PATCH

Sinon, Content-Length - tête peut être omis et un bloc Transfer-Encoding l'en-tête peut être utilisé.

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

41
répondu spender 2017-06-16 18:32:14

Un octet est 8 bits. Content-length est le nombre d'octets que le corps du message représente.

37
répondu itsproject 2011-07-21 06:53:20

De là :

La Longueur du Contenu de l'entité champ d'en-tête indique la taille du corps d'entité, en nombre décimal D'OCTETs, envoyé à le destinataire ou, dans le cas de la TÊTE de méthode, la taille de la entité qui aurait été envoyé si la demande avait été un GET.

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

Un exemple est

   Content-Length: 3495

Les Applications doivent utiliser ce champ pour indiquer la longueur de transfert du message-body, à moins que ce soit interdit par les règles dans la section 4.4.

Toute longueur de contenu supérieure à ou égal à 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 donné.

Notez que la signification de ce champ est significativement différent de la définition correspondante dans MIME, où il s'agit d'un champ optionnel utilisé dans le " message / corps externe" type de contenu. En HTTP, il devrait être envoyé chaque fois que la longueur du message peut être déterminé avant d'être transféré, sauf si cela est interdit les règles dans la section 4.4.

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

24
répondu Daniel Renshaw 2015-07-24 14:01:47

À Partir de cette page

L'utilisation la plus courante de poste, de loin, est de soumettre des données de formulaire HTML à CGI script. Dans ce cas, l' Content-Type: l'en-tête est généralement application/x-www-form-urlencoded, et la Longueur du Contenu: en-tête donne la longueur du formulaire codé par URL données (Voici une note sur l'encodage D'URL). Le script CGI reçoit le message corps à travers STDIN, et décode. Voici une soumission de formulaire typique, utilisation de 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
7
répondu Theresa 2010-05-05 13:10:54

Selon la spécification :

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

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

Un exemple est

Content-Length: 3495

Les Applications doivent 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 une longueur de contenu n'est pas 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". Dans HTTP, il doit ê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 l'article 4.4.

3
répondu Bozhidar Batsov 2017-10-03 07:16:43

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

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

Un exemple est

Contenu-Longueur: 1024

Les Applications doivent utiliser ce champ pour indiquer la longueur de transfert message du corps.

En PHP, vous utiliseriez quelque chose comme ceci.

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.

2
répondu Gaurav Jassal 2013-04-25 09:16:22