106 votes

Une demande de PUT HTTP est-elle requise pour inclure un corps ?

J'ai du mal à trouver une spécification précise dans la norme. J'ai un client HTTP qui n'inclut pas d'en-tête Content-Length: 0 lorsque je fais une demande de VENTE où je ne spécifie pas de corps, et un serveur qui se confond avec de telles demandes, et je me demande quel programme je devrais blâmer.

48voto

Blessed Geek Points 6930

Ne pas répondre à la question, mais affirmer comment jaxrs me permet d'utiliser fréquemment des PUT sans corps :

Exemple de mise sans corps : Donnez à l'utilisateur une autorisation supplémentaire.

METTRE /admin/users/{username}/permission/{permission}

5voto

abc Points 11

Un corps n'est pas requis par la norme IETF, bien que le contenu-longueur doive être 0 s'il n'y a pas de corps. Utilisez la méthode qui convient à ce que vous faites. Si vous deviez le mettre en code, donnez

int x;
int f(){ return x; }

et une variable distante appelée r.

Un poste équivaut à

r=f();

Un put équivaut à

r=x;

et un get équivaut à

x=r;

1voto

Rob Hruska Points 39151

Qu'est-ce qui est MIS (dans le sens verbal) sur le serveur s'il n'y a pas de contenu ? La spécification se réfère au contenu comme "l'entité fermée", mais une requête sans contenu n'aurait pas d'entité fermée, et donc rien à mettre sur le serveur.

À moins, bien sûr, que vous ne vouliez rien METTRE sur le serveur, auquel cas vous voudriez probablement une SUPPRESSION à la place.

-4voto

kungfuice Points 75

Le champ de longueur de contenu est requis conformément à la section suivante de la norme HTTP/1.1 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X