web-dev-qa-db-fra.com

L'en-tête Content-Length est-il requis pour une réponse HTTP / 1.0?

Est le Content-Length en-tête requis pour une réponse HTTP/1.0? La spécification HTTP mentionne qu'elle est requise pour la demande, mais ne mentionne rien sur la réponse:

http://www.w3.org/Protocols/HTTP/1.0/draft-ietf-http-spec.html#Content-Length

Une valeur de champ Content-Length valide est requise sur tous les messages de requête HTTP/1.0 contenant un corps d'entité.

Si elle n'est pas requise pour la réponse, comment le client lit-il la réponse lorsqu'elle est supérieure à 1 Mo?

46
Sean Nguyen

La section 10.4 de la spécification (à laquelle vous avez lié) ne dit rien sur les exigences des réponses elle-même, mais établit un lien vers section 7.2.2 , qui spécifie que le serveur peut indiquer la longueur d'une réponse contenant un corps d'entité par

  • envoi d'un Content-Length en-tête, ou
  • fermer la connexion lorsque la réponse complète a été envoyée.

Section 7.2 dit que les réponses aux demandes HEAD, et 1xx, 204 ou 304 réponses, ne doivent pas inclure de corps d'entité, et n'ont donc pas besoin d'inclure un Content-Length entête; et

Toutes les autres réponses doivent inclure un corps d'entité ou un Content-Length champ d'en-tête défini avec une valeur de zéro (0).

Donc, pour répondre à la question: quand aucun Content-Length est reçu, le client continue de lire jusqu'à ce que le serveur ferme la connexion.

52
michaelb958