2009-05-15 6 views

Répondre

1

La longueur de réponse est déterminée en fermant la connexion (HTTP/1.0), l'en-tête de réponse Content-Length ou l'utilisation de l'encodage en morceau.

Voir HTTPbis, Part 1, Section 4.4.

3

Il n'y a pas de marqueur - plutôt, dans l'en-tête de réponse HTTP il y a un champ Content-Length décrivant la longueur du corps de la réponse

Si vous êtes intéressé à l'examen et l'apprentissage sur le protocole HTTP, je téléchargerait l'outil Fiddler au http://www.fiddler2.com/fiddler2/

Vous pouvez ensuite regarder «en coulisses» ce qui se passe lorsque vous visitez une page Web et voir le texte de la demande et de la réponse.

+0

Ainsi, l'en-tête Content-Length facultatif est omis. Comment le client sait-il que le corps de réponse complet a été reçu si la connexion au serveur est fermée? – divinci

+1

C'est au client de décider. Vraisemblablement, si le serveur a fermé la connexion, il était terminé, mais bien sûr, il y a toujours la possibilité d'une erreur réseau fermant artificiellement la connexion. S'ils ont envoyé l'en-tête content-length, vous serez en mesure de faire la différence. Si ce n'est pas le cas, vous n'avez aucun moyen de savoir, et vous n'avez qu'à faire de votre mieux avec ce qu'ils vous ont envoyé. – Clyde

2

De RFC 2616 (HTTP 1,1)

HTTP/1.1 définit la séquence CR LF comme marqueur de fin de ligne pour tous les éléments de protocole à l'exception du corps d'entité (voir l'annexe 19,3 pour applications tolérantes). Le marqueur de fin de ligne dans un corps d'entité est défini par son type de média associé, comme décrit dans la section 3.7.

+0

Il a demandé la fin de la réponse, pas la fin de la ligne – Clyde

3

Il n'y a pas un tel octet. La connexion peut être terminée de chaque côté.

L'en-tête Content-Length est facultatif, mais il s'agit d'une sorte de conseil permettant au client de connaître la taille de la réponse.

+0

L'en-tête Length est omis. Comment le client sait-il que le corps de réponse complet a été reçu si la connexion au serveur est fermée? – divinci

+1

Le client ne sait pas. Si la connexion est interrompue par le serveur, la réponse est terminée ou une erreur s'est produite. En fonction du type de contenu de la réponse, le client peut l'analyser. – tuler

Questions connexes