web-dev-qa-db-fra.com

POST HTTP: en-tête de longueur de contenu requis?

J'essaie actuellement d'optimiser le transfert de données basé sur http entre plusieurs applications. Notre approche actuelle, en téléchargeant d'abord puis en créant la post-demande, ajoute évidemment une charge d'E/S supplémentaire et des latences, que j'aimerais contourner.

La question centrale de tous:

Est-il nécessaire d'envoyer un en-tête "Content-Length" dans HTTP POST? IIRC, HTTP 2616 déclare que c'est facultatif, mais je ne sais pas comment les applications se comportent réellement à ce stade.

35

Cela dépend de ce que vous entendez par facultatif. Si vous voulez dire que vous pouvez simplement omettre l'en-tête à tout moment, alors non, ce n'est pas facultatif. La spécification HTTP a des règles très spécifiques sur l'utilisation de cet en-tête. Il existe différentes manières d'envoyer les données si vous ne connaissez pas la longueur. Encodage en morceaux par exemple.

4.4 Longueur du message

24
jdb