HTTP动词REPORT的实际用例是什么?为什么它会随着时间的推移而被忽略?

时间:2017-03-01 14:15:16

标签: http http-method httpverbs

每当我必须创建RESTful Web服务并且用例意味着根据一组搜索条件获取数据时,我总是选择在主体中使用参数的POST请求,而不是针对所有明显的GET请求原因。我已经看过十几次,所以我认为这是最好的做法。

最近我偶然发现了this interesting blog article by Evert Pot,他评论了POST动词的缺点,只是简单地说明了如何使用 REPORT 动词。他还指出“它的语义定义明确,并且可以在任何地方使用”。 看完这篇文章之后,我一直试图找到关于这个REPORT动词的更多信息,但找不到多少。我知道它是RFC-3253的一部分,作为获取资源信息的一种方式,但除此之外,我一无所知。

我的问题如下:

  1. 在基于一组搜索条件请求资源的情况下,REPORT是否真的比POST更好?
  2. 开始使用它是否明智还是风险太大?我看到了很多 HTTP Method REPORT not supported来自各种工具和框架的问题。
  3. 为什么这些年来似乎被忽视了,为什么我们这样做 对此知之甚少?
  4. 使用此动词的其他有效用例是什么?
  5. 提前谢谢。

1 个答案:

答案 0 :(得分:1)

REPORT方法在webdav范围内定义,包括Depth标头字段和DAV:version-tree报告请求。

在webdav外部使用它可能会导致某些未指定的行为。

  

REPORT请求是获取信息的可扩展机制     关于资源。

从语义上来说,它与POST请求不同,在POST请求中,您通常将  您想要传达给服务器的预期表示形式。

请考虑在HTTP method registry报告中将其标记为“安全”和“幂等”,而对于POST则并非如此

  

报告的价值可能取决于其他信息     在“报告”请求正文和“报告”请求中指定     标头。

这些都与webdav相关。为了提高REPORT的使用率,我们应该扩展其定义并将其与webdav分开。