如何理解restful接口的幂等性和安全性定义?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
最近在看RESTful
相关资料的时候,一个新的名词叫做"幂等性"出现在视野中。那么,啥叫幂等性呢?在restful
接口设计中,由如何理解呢?这就是本文要讨论的问题。
大家好,这里是苏南大叔的网络自留地,想写点啥就写点啥。本文写个有点悬乎的名词,叫“幂等性”。测试环境:呃,不用啥环境。本文就是阐述个定义。
基本定义
幂等性的定义,就是对于同一个请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。符合幂等性,并不是说返回的数据永远都是一致的。比如:某个符合幂等性的接口,可以使用get
方法来请求,里面有个数据是当前时间。那么,虽然返回的数据每次都不一样。但是对于这个资源来说,每次都是一致的,返回的都是时间。所以是符合幂等性。
安全性定义,指的是对资源是否进行修改。
restful
方法对比
对于post
、put
、patch
、delete
方法,理论上来说,有的符合幂等性,有的不符合幂等性。那么,到有判断标准就是对这个接口资源是否有影响。这个比较玄学,直接公布标准答案。
get
,restful
里面是请求资源,多次调用结果一致,符合幂等性。post
,restful
里面是新建资源,所以有影响,不符合幂等性。put
,restful
里面是更新全部资源,多次调用结果一致,符合幂等性。patch
,restful
里面是更新部分资源,多次调用可能会导致某资源的某属性变化,不符合幂等性。delete
,restful
里面是删除资源,多次调用结果一致,符合幂等性。
总结如下:
method | 描述 | 多次调用 | 幂等性 | 安全性 |
---|---|---|---|---|
get | 请求资源 | 资源一致 | 符合幂等 | 安全 |
post | 新建资源 | 资源不一致 | 不符合幂等 | 不安全 |
put | 跟新全部资源 | 资源一致 | 符合幂等 | 不安全 |
patch | 更新部分资源 | 资源不一致 | 不符合幂等 | 不安全 |
delete | 删除资源 | 资源一致 | 符合幂等 | 不安全 |
options | 获取服务器信息 | 资源一致 | 符合幂等 | 安全 |
head | 获取资源头信息 | 资源一致 | 符合幂等 | 安全 |
相关文章
- https://newsn.net/say/restful.html
- https://newsn.net/say/postman.html
- https://newsn.net/say/restclient-wisdom.html
- https://newsn.net/say/restclient-vscode.html
- https://newsn.net/say/restclient-wiztools.html
总结
这些资源请求的办法是不是幂等,前提是建立在restful
这个框架上的。因为大多数情况下,接口并不是安装这个restful
的方案定制的,get
和post
方法横行天下。其它的方法,几乎就没用过。所以,是不是幂等。也就是了解一下罢了。这个东西没有绝对性。面试的时候也许会用得到的一个文章罢了,和实际脱节比较严重。没有啥太现实的意义。
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。