幂等性
- Http幂等方法是指无论调用这个url多少次,都不会有不同的结果的http方法。
- 幂等性指的是作用于结果而非资源本身。可能某个方法可能每次会得到不同的返回内容,但并不影响资源,这样的也满足幂等性,例如get服务器当前时间。
HTTP GET方法
- 用于获取资源,不管调用多少次接口,结果都不会改变,所以是幂等的。
- 若接口用于获取当前时间,它获取的是服务器当前时间,本身不会对资源产生影响,因此满足幂等性。
HTTP POST方法
POST是一个非幂等方法,它会对资源本身产生影响,每次调用都会有新的资源产生,因此不满足幂等性。
HTTP PUT方法
PUT方法直接把实体部分数据替换到了服务器的资源,但我们多次调用它时,只会产生一次影响,即有相同结果的HTTP方法,所有满足幂等性
HTTP PATCH方法
PATCH方法是非幂等的,因为它提供的实体需要根据程序或其他协议的定义,解析后在服务器上执行,以此来修改服务器上的资源。也就是若反复提交,程序可能执行多次,对服务器资源可能造成额外影响。
PATCH
在HTTP协议中,请求方法PATCH用于对资源进行部分修改。
连续多个的相同请求会产生不同的效果。
PATCH提供的实体则需要根据程序或其它协议的定义,解析后在服务器上执行,以此来修改服务器上的资源。换句话说,PATCH请求是会执行某个程序的,如果重复提交,程序可能执行多次,对服务器上的资源就可能造成额外的影响。
HTTP DELETE方法
DELETE方法用于删除资源,会将资源删除,但调用一次和调用多次的影响是相同的,因此也满足幂等性。
参考:
https://www.jianshu.com/p/178da1e2903c
https://www.jianshu.com/p/362fd4b23c83