【发布时间】:2015-04-06 16:44:41
【问题描述】:
我是 REST 的新手,我对 REST 中的安全方法和幂等方法有以下疑问。
我知道(但可能是错误的)GET、HEAD、OPTIONS 和 TRACE 方法被定义为安全的,因为它们仅用于检索数据。
但现在我正在阅读这篇文章:http://restcookbook.com/HTTP%20Methods/idempotency/,它说:
安全方法是不修改资源的 HTTP 方法。为了 例如,在资源 URL 上使用 GET 或 HEAD,永远不要更改 资源。
直到这里还可以,这与我知道的没有什么不同,但是在它断言之后:
然而,这并不完全正确。这意味着:它不会改变 资源表示。仍然有可能,安全的方法可以 更改服务器或资源上的内容,但这不应反映 以不同的表示形式。
这个断言究竟意味着什么?究竟什么是表示?什么是安全的方法在资源上如此更改但这种更改没有反映到不同的表示中?
那么它也做这个例子:
GET /blog/1234/delete HTTP/1.1
并说如果这实际上会删除博文并断言这是不正确的:
安全方法是可以缓存的方法,无需任何预取 对资源的影响。
【问题讨论】:
标签: web-services rest