为什么在HTTP DELETE请求中拥有实体主体不是一个好习惯?

时间:2014-05-07 09:10:30

标签: java http rest web protocols

我正在使用 Java JAX-RS 使用 Restful Web Services ,我遇到了发送{{1}的问题请求与实体正文。

我花了几个小时寻找一种方法来发送DELETE请求,并在正文中发送消息,但我发现的唯一一件事是work around using the Apache HttpClient

我发现的一些答案是说在DELETE请求中有一个正文是没有意义的,正如我所看到的那样,许多服务器通过不允许DELETE使用正文来支持这一点。 例如" entity enclosing DELETE requests make no sense"

所以我的问题是为什么在DELETE请求中拥有一个正文并不是一个好习惯?这有什么缺点?

由于

2 个答案:

答案 0 :(得分:4)

DELETE方法请求源服务器删除Request-URI标识的资源。并且Web服务器上的每个资源仅由URI标识。这就是为什么在DELETE中使用body是没有意义的

答案 1 :(得分:1)

REST很吵,很可能每个资源都有一个单独的DELETE调用。对于有限数量的ID,您可以在集合资源上使用查询参数:

DELETE /widgets?id=1,2,4,16,256

通常,您应该能够将查询参数用作集合的DELETE上的过滤器,就像在该集合的GET上一样。