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

Nic*_*lle 11 http http-verbs http-method

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

最近我偶然发现了Evert Pot的这篇有趣的博客文章,他在评论POST动词的缺点时,简单地说明了使用REPORT动词.他还指出"它的语义定义明确,并且无处不在".看完这篇文章之后,我一直试图找到关于这个REPORT动词的更多信息,但找不到多少.我知道它是RFC-3253的一部分,作为获取资源信息的一种方式,但除此之外我一无所知.

我的问题如下:

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

先感谢您.

Rob*_*lli 3

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

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

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

这在语义上与 POST 请求不同,在 POST 请求中,您通常会将想要传达的预期表示传输到服务器。

考虑到在HTTP 方法注册表中REPORT 被标记为“安全”和“幂等”,而 POST 的情况并非如此

报告的值可以取决于 REPORT 请求正文和 REPORT 请求标头中指定的附加信息。

这些与 webdav 相关。为了促进 REPORT 的使用,我们应该扩展它的定义并将其与 webdav 分开。