是否需要包含正文的HTTP PUT请求?
我无法在标准中find明确的规格说明。 我有一个HTTP客户端,不包括一个'Content-Length:0'标头,当做一个PUT请求时,我没有指定一个正文,服务器被这样的请求弄糊涂,我想知道我应该哪个程序责备。
如果HTTP请求具有Content-Length或Transfer-Encoding标头( RFC 2616 4.3 ),则它们具有主体。 如果请求既没有,也没有主体,你的服务器应该这样对待它。
也就是说,对于一个PUT请求来说没有任何主体是不寻常的,所以如果我devise的客户端真的想发送一个空的主体,我会通过Content-Length:0。事实上,根据读者的POST和PUT方法定义( RFC 2616 9.5,9.6 ),人们可能会争辩说,身体暗示是必需的 – 但是,一个合理的方式来处理没有身体将是假设一个零长度的身体。
不回答这个问题,而是断言jaxrs如何让我频繁使用无身体的PUT:
无主放置示例:授予用户额外的权限。
PUT / admin /用户/ {用户名} /权限/ {权限}
如果没有内容,那么正在将PUT(在动词意义上)放到服务器上? 规范将内容称为“封闭的实体”,但没有内容的请求不会有封闭的实体,因此没有放置在服务器上。
当然,除非你想把任何东西放到服务器上,否则你可能需要一个DELETE。
IETF标准并不要求主体,尽pipe如果没有主体,内容长度应该是0。 使用适合你正在做的事情的方法。 如果你把它写成代码,给定
int x; int f(){ return x; }
和一个称为r
的远程variables。
一个职位相当于
r=f();
一个expression相当于
r=x;
和get相当
x=r;
内容长度字段是按照HTTP / 1.1标准中的以下章节http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13