Content-Length: |
Longueur du contenu |
---|---|
HTTP | Entêtes |
Syntaxe
Content-Length: size |
Paramètres
Nom | Description |
---|---|
size | Ce paramètre permet d'indiquer la longueur du contenu en octets. |
Description
Ce champ d'entête permet d'indiquer la taille en octets, spécifiée avec une base décimal, du corps de la réponse envoyée au client.
Remarques
- Un expéditeur ne doit pas envoyer de champ d'entête Content-Length: dans un message contenant un champ d'entête Transfer-Encoding:.
- Un agent utilisateur devrait envoyer une longueur de contenu dans un message de requête lorsqu'aucun encodage de transfert n'est envoyé et la méthode de requête définit une signification pour un corps de charge utile inclus. Par exemple, un champ d'entête Content-Length: est normalement envoyé dans une requête POST même lorsque la valeur est 0 (indiquant un corps de charge utile vide). Un agent utilisateur ne devrait pas envoyer un champ d'entête Content-Length: lorsque le message de demande ne contient pas de corps de charge utile et que la sémantique de la méthode n'anticipe pas un tel corps.
- Un serveur peut envoyer un champ d'entête Content-Length: en réponse à une requête HEAD; cependant un serveur ne doit pas envoyer Content-Length: dans une telle réponse, sauf si sa valeur de champ est égale au nombre décimal d'octets ayant été envoyés dans le corps de la charge utile d'une réponse si la même demande avait utilisé la méthode GET.
- Un serveur peut envoyer un champ d'entête Content-Length: dans une réponse 304 Not Modified à une requête GET conditionnelle; un serveur ne doit pas envoyer Content-Length: dans une telle réponse sauf si sa valeur de champ est égale au nombre décimal d'octets ayant été envoyés dans le corps de la charge utile d'une réponse 200 OK à la même requête.
- Un serveur ne doit pas envoyer un champ d'entête Content-Length: dans toute réponse avec un code d'état de 1xx Informational ou 204 No Content. Un serveur ne doit pas envoyer de champ d'entête Content-Length: dans une réponse 2xx Successful à une requête CONNECT.
- Mis à part les cas définis ci-dessus, en l'absence de Transfer-Encoding:, un serveur d'origine devrait envoyer un champ d'entête Content-Length: lorsque la taille du corps de la charge utile est connue avant d'envoyer la section d'entête complète. Cette situation permettra aux destinataires en aval de mesurer la progression du transfert, de savoir quand un message reçu est terminé et de réutiliser éventuellement la connexion pour des demandes supplémentaires.
- Toute valeur de champ Content-Length: supérieure ou égale à zéro est valide. Puisqu'il n'y a pas de limite prédéfinie à la longueur d'une charge utile, un destinataire doit anticiper des nombres décimaux potentiellement importants et éviter les erreurs d'analyse dues aux débordements de conversion d'entiers.
- Si un message est reçu contenant plusieurs champs d'entête Content-Length: avec des valeurs de champ consistant en la même valeur décimale, ou un seul champ d'entête Content-Length: avec une valeur de champ contenant une liste de valeurs décimales identiques (par exemple, «Content-Length: 42, 42»), indiquant que des champs d'entête Content-Length: en double ont été générés ou combinés par un processeur de message en amont, le destinataire doit soit rejeter le message comme non valide, soit remplacer les valeurs de champ dupliquées par une seule champ d'entête Content-Length: valide contenant cette valeur décimale avant de déterminer la longueur du corps du message ou de transmettre le message.
- L'utilisation par le HTTP du champ d'entête Content-Length: pour le cadrage des messages diffère considérablement de l'utilisation du même champ dans le MIME, où il s'agit d'un champ facultatif utilisé uniquement dans le type de média «message/corps-externe».
Exemple
L'exemple suivant permet d'indiquer la longueur d'un contenu d'une page de redirection :
Content-Length: 231
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://www.gladir.com/">here</a>.</p>
</body></html>
Dernière mise à jour : Vendredi, le 10 janvier 2020