REST架构中的非幂等但安全的转换

时间:2014-12-25 15:51:59

标签: web-services rest restful-architecture

你能否提供一个RESTful API调用(使用HTTP协议)的例子,它同时是非幂等和安全的(甚至存在类似的东西)?

为了详细说明这一点,在阅读Hypermedia-Oriented Design时,我遇到了描述每个过渡的4个可供性方面:安全性,幂等性,可变性和颠覆性。另外,我遇​​到了a table,它通过这些方面描述了HTTP动词,它是这样的:

---------------------------------
HTTP Method    Idempotent    Safe
---------------------------------
OPTIONS        yes           yes
GET            yes           yes
HEAD           yes           yes
PUT            yes           no
POST           no            no
DELETE         yes           no
PATCH          no            no
---------------------------------

我的直觉告诉我,所有安全方法也是自动幂等的(但反之亦然)。我想一劳永逸地确认或反驳这一点。

提前感谢您的答案。

2 个答案:

答案 0 :(得分:0)

安全方法 - 不修改任何内容的方法 - 根据定义是幂等的。由于它没有改变任何东西,无论你多少次调用它都会产生相同的效果(即无效)。

答案 1 :(得分:0)

是。所有安全方法也是幂等的,但它们指的是RESTful API的两种不同(但相关)的特性。

安全方法调用(不会修改服务器上资源状态的调用)可以由客户端多次发出,而不会影响服务器的状态(幂等性的定义)。