REST API中的幂等和安全HTTP方法之间的区别

时间:2019-06-24 04:17:29

标签: java rest http http-method idempotent

PUT方法如何幂等但不安全?有人可以解释吗?

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 :(得分:2)

Safe method不会在内部更改(资源)

  

安全方法是可以缓存,预取而不会对资源造成任何影响的方法。

Idempotent method不会从外部更改(响应)

  

幂等HTTP方法是可以多次调用而没有不同结果的HTTP方法。

答案 1 :(得分:1)

全部在规范中:

  

4.2.2。幂等方法

     

如果请求方法具有预期效果,则认为该方法是“幂等的”   使用该方法的多个相同请求的服务器相同   作为单个此类请求的效果。的请求方法   由本规范,PUT,DELETE和安全请求方法定义   是幂等的。

     

就像保险柜的定义一样,幂等属性仅适用于   用户的要求;服务器可以自由登录   单独请求,保留修订控制历史记录或实施   每个幂等请求的其他非幂等副作用。

     

全能方法之所以能够被区分,是因为请求可以   如果在通信之前发生通信故障,则自动重复   客户端能够读取服务器的响应。例如,如果一个客户   发送一个PUT请求,并且在任何   收到响应,然后客户端可以建立新连接   然后重试幂等请求。它知道重复请求   即使原始请求也将具有相同的预期效果   成功,尽管响应可能有所不同。

https://greenbytes.de/tech/webdav/rfc7231.html#idempotent.methods