6

大多数时候,网站主要只使用GETandPOST用于所有操作,但还有七个动词。他们以前在哪里使用,但现在没有那么多了?

或者可能是因为某些浏览器无法识别其他动词?如果是这样的话,为什么浏览器厂商会选择实现一半的协议呢?

[更新]

我发现这篇文章很好地总结了这种情况:为什么 REST 失败

4

2 回答 2

7

HTML 规范是罪魁祸首,只允许 GET、POST 和 HEAD。虽然它们已经被使用了很多,但没有直接在浏览器中使用。

其他 crud-verbs(例如 PUT 和 DELETE)的最常见用途是在 REST 服务和 WebDAV 中。

将来您会看到更多 OPTIONS,因为它被 CORS 规范(跨域 xmlhttprequest)使用。

TRACE 几乎在所有地方都被禁用,因为它带来了相当大的安全风险。CONNECT 肯定被代理使用了很多。

PATCH 是全新的。虽然他们决定将它添加到列表中(但不是 PROPFIND、MKCOL、ACL、LOCK 等)对我来说很奇怪,但我确实认为我们会在未来看到它更多地出现在 RESTful 服务中。

附录:原始浏览器同时使用 GET 和 PUT(后者用于更新网页)。后来的浏览器几乎变成了只读的,直到表单和 POST 请求进入规范。

于 2011-05-03T11:15:19.670 回答
1

它们中的大多数仍在使用,尽管不如 GET 或 POST 广泛使用。例如 RESTful Web 服务使用 PUT & DELETE 以及 GET & POST:

RESTful Web 服务 - 维基文章

HEAD 对于 HTTP 标头的服务器调试非常有用,但由于它不返回响应正文,因此对浏览器/普通 Web 访问者没有多大用处...

由于潜在的安全问题等原因,诸如 TRACE 之类的其他动词没有那么普遍。在 Wiki 文章中简要提及:

HTTP 协议方法 - 维基文章

于 2011-05-03T11:16:40.813 回答