每当我必须创建 RESTful Web 服务并且用例意味着根据一组搜索条件获取数据时,出于所有显而易见的原因,我总是选择在正文中包含参数的 POST 请求,而不是 GET 请求。我已经看过十几次了,所以我认为这是最佳实践。
最近我偶然发现Evert Pot 撰写的这篇有趣的博客文章 https://evertpot.com/dropbox-post-api他评论了 POST 动词的缺点,并简单地说明了如何使用REPORT动词代替。他还表示“它的语义定义明确并且在任何地方都适用”。
读完这篇文章后,我一直试图找到有关此 REPORT 动词的更多信息,但找不到太多信息。我知道这是一部分RFC-3253 https://www.rfc-editor.org/rfc/rfc3253#section-3.6作为获取资源信息的一种方式,但除此之外我一无所知。
我的问题如下:
- 在基于一组搜索条件请求资源的情况下,REPORT 真的比 POST 更好吗?
- 开始使用它是明智的还是风险太大?我看到很多
HTTP Method REPORT not supported
来自各种工具和框架的问题。
- 为什么多年来它似乎被忽视了,为什么我们
对它了解这么少?
- 使用这个动词还有什么其他有效的用例?
先感谢您。
REPORT方法定义在webdav范围内,包括Depth
标头字段,以及DAV:version-tree
报告请求。
在 webdav 之外使用它可能会导致一些未指定的行为。
REPORT 请求是一种用于获取信息的可扩展机制
关于一个资源。
这在语义上与 POST 请求不同,您通常在 POST 请求中传输
您想要传达给服务器的预期表示。
考虑到在HTTP 方法注册表 https://www.iana.org/assignments/http-methods/http-methods.xhtmlREPORT 被标记为“安全”和“幂等”,而 POST 则不然
报告的价值可能取决于附加信息
在 REPORT 请求正文和 REPORT 请求中指定
标头。
这些与 webdav 相关。为了促进 REPORT 的使用,我们应该扩展它的定义并将其与 webdav 分开。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)