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.
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.