大多数时候,网站主要只使用GET
andPOST
用于所有操作,但还有七个动词。他们以前在哪里使用,但现在没有那么多了?
或者可能是因为某些浏览器无法识别其他动词?如果是这样的话,为什么浏览器厂商会选择实现一半的协议呢?
[更新]
我发现这篇文章很好地总结了这种情况:为什么 REST 失败。
HTML 规范是罪魁祸首,只允许 GET、POST 和 HEAD。虽然它们已经被使用了很多,但没有直接在浏览器中使用。
其他 crud-verbs(例如 PUT 和 DELETE)的最常见用途是在 REST 服务和 WebDAV 中。
将来您会看到更多 OPTIONS,因为它被 CORS 规范(跨域 xmlhttprequest)使用。
TRACE 几乎在所有地方都被禁用,因为它带来了相当大的安全风险。CONNECT 肯定被代理使用了很多。
PATCH 是全新的。虽然他们决定将它添加到列表中(但不是 PROPFIND、MKCOL、ACL、LOCK 等)对我来说很奇怪,但我确实认为我们会在未来看到它更多地出现在 RESTful 服务中。
附录:原始浏览器同时使用 GET 和 PUT(后者用于更新网页)。后来的浏览器几乎变成了只读的,直到表单和 POST 请求进入规范。
它们中的大多数仍在使用,尽管不如 GET 或 POST 广泛使用。例如 RESTful Web 服务使用 PUT & DELETE 以及 GET & POST:
HEAD 对于 HTTP 标头的服务器调试非常有用,但由于它不返回响应正文,因此对浏览器/普通 Web 访问者没有多大用处...
由于潜在的安全问题等原因,诸如 TRACE 之类的其他动词没有那么普遍。在 Wiki 文章中简要提及: