HTTP 动词 REPORT 的实际用例是啥?为啥它会随着时间的推移而被忽视?
Posted
技术标签:
【中文标题】HTTP 动词 REPORT 的实际用例是啥?为啥它会随着时间的推移而被忽视?【英文标题】:What are practical use-cases for the HTTP verb REPORT and why is it neglected over time?HTTP 动词 REPORT 的实际用例是什么?为什么它会随着时间的推移而被忽视? 【发布时间】:2017-07-20 22:00:58 【问题描述】:每当我必须创建一个 RESTful Web 服务并且用例暗示基于一组搜索条件获取数据时,我总是选择带有参数的 POST 请求,而不是所有显而易见的 GET 请求原因。我已经看过十几次了,所以我认为这是最好的做法。
最近我偶然发现了this interesting blog article by Evert Pot,他发现了 POST 动词的缺点,并简单地说明了使用 REPORT 动词。他还指出“它的语义定义明确,并且适用于任何地方”。 阅读帖子后,我一直在尝试查找有关此 REPORT 动词的更多信息,但找不到太多信息。我知道这是RFC-3253 的一部分,作为获取资源信息的一种方式,但除此之外我一无所知。
我的问题如下:
-
在根据一组搜索条件请求资源的情况下,REPORT 真的比 POST 更好吗?
开始使用它是明智之举还是风险太大?我看到很多
HTTP Method REPORT not supported
来自各种工具和框架的问题。
为什么多年来它似乎被忽视了,为什么我们
对此知之甚少?
使用此动词的其他有效用例有哪些?
提前谢谢你。
【问题讨论】:
我正在寻找一个更好的动词,用于搜索时的任意用户输入。我们不希望将敏感的个人信息存储在 Web 服务器日志中,并且不能将 GET 与查询参数一起使用。我们现在的解决方案是使用 POST 来“隐藏”请求正文中的搜索参数。报告可能是一个更好的解决方案。 【参考方案1】:REPORT 方法定义在 webdav 范围内,包括 Depth
标头字段和 DAV:version-tree
报告请求。
在 webdav 之外使用它可能会导致一些未指定的行为。
REPORT 请求是一种获取信息的可扩展机制 关于资源。
这在语义上与 POST 请求不同,您通常在其中传输 您想要传达给服务器的预期表示。
考虑在HTTP method registry REPORT 中被标记为“安全”和“幂等”,而 POST 则不是这样
报告的价值可能取决于其他信息 在 REPORT 请求正文和 REPORT 请求中指定 标题。
那些与 webdav 相关联。为了促进 REPORT 的使用,我们应该扩展它的定义并将其从 webdav 中分离出来。
【讨论】:
以上是关于HTTP 动词 REPORT 的实际用例是啥?为啥它会随着时间的推移而被忽视?的主要内容,如果未能解决你的问题,请参考以下文章
cudaGraphicsGLRegisterImage中cudaGraphicsRegisterFlagsWriteDiscard的用例是啥?