大多数时候,网站主要只使用GET
和POST
来进行所有操作,然而seven more verbs在那里。他们以前在哪里使用但现在不那么多了?
或者可能是因为某些浏览器无法识别其他动词?如果是这样的话,为什么浏览器供应商选择实现一半的协议(protocol)?
[更新]
我发现这篇文章很好地总结了这种情况:Why REST failed .
最佳答案
HTML 规范是一个大罪魁祸首,它只真正允许 GET、POST 和 HEAD。虽然它们得到了相当多的使用,但没有直接在浏览器中使用那么多。
PUT 和 DELETE 等其他 crud-verbs 最常见的用途是在 REST 服务和 WebDAV 中。
以后您会看到更多 OPTIONS,因为它被 CORS 规范(跨域 xmlhttprequest)使用。
TRACE 几乎无处不在,因为它会带来相当大的安全风险。 CONNECT 肯定被代理使用了很多。
补丁是全新的。虽然他们决定将它添加到列表中(但不是 PROPFIND、MKCOL、ACL、LOCK 等)对我来说很奇怪,但我确实认为我们将来会看到它更多地出现在 RESTful 服务中。
附录:原始浏览器同时使用 GET 和 PUT(后者用于更新网页)。后来的浏览器几乎变成只读的,直到表单和 POST 请求进入规范。
关于http - 为什么不使用其余的 HTTP 动词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5868566/