Est une application HTTP qui envoie un Content-Length ou Transfer-Encoding avec 204 Pas de réponse contenu brisé?

StackOverflow https://stackoverflow.com/questions/912863

  •  06-09-2019
  •  | 
  •  

Question

Je ne peux pas dire de RFC 2616 si un client HTTP doit accepter un 204 Aucune réponse de contenu qui comprend Content-Length: 0 ou Transfer-Encoding: chunked têtes. Ces en-têtes semblent briser certains clients HTTP et proxy, qui tentent apparemment de lire le corps de la réponse vide, mais la spécification lit :

  
      
  1. Un message de réponse qui « NE DOIT PAS » inclure un corps de message (par exemple   le 1xx, 204, et 304 réponses et   toute réponse à une requête HEAD) est   toujours terminé par le premier vide   ligne après que les champs d'en-tête,   quels que soient les champs en-tête d'entité   présent dans le message.
  2.   

Pour moi, « quels que soient les champs en-tête d'entité » implique que les clients devraient tolérer cet état de choses. Erlang HTTP bibliothèque a choisi cette interprétation. Cependant, lighthttpd et IBM a choisi l'interprétation contraire -. que le serveur ne doit pas inclure ces en-têtes pour les réponses qui sont interdites d'avoir des corps

Donc, si l'application Web supprimer les en-têtes de la réponse, ou si l'infrastructure réseau et les clients tolérer ces en-têtes sur 204 Pas de contenu, 304 Non modifié, etc.?

Était-ce utile?

La solution

Selon le RFC7230 (voir http://tools.ietf.org /html/rfc7230#section-3.3.1 ) à la fin de la page 29 il est écrit:

  

Un serveur NE DOIT PAS envoyer un champ d'en-tête Transfer-Encoding dans tous les      réponse avec un code d'état de 1xx (d 'information) ou 204 (n      Contenu).

Par conséquent, l'application Web ne doit pas envoyer les en-têtes de la réponse.

Autres conseils

Je ne peux pas vous dire ce qui est correct, car je ne connais pas le protocole HTTP dans ce détail.

Cependant, vous devez vous demander:

  1. Puis-je changer ma demande de supprimer ces en-têtes?
  2. ou puis-je changer les consommateurs de ma demande d'ignorer ces en-têtes?

A mon avis, l'application ne doit pas envoyer les en-têtes dans ce cas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top