restful接口规范(安全与幂等)

本文深入解析HTTP的GET、POST、PUT、DELETE四种方法的特点与应用场景,包括它们的安全性、幂等性及常见状态码,帮助理解不同请求方法的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GET/POST/PUT/DELETE四种方法

GET   安全且幂等     获取表示    变更时获取表示(缓存)

200(OK) - 表示已在响应中发出
204(无内容) - 资源有空表示
301(Moved Permanently) - 资源的URI已被更新
303(See Other) - 其他(如,负载均衡)
304(not modified)- 资源未更改(缓存)
400 (bad request)- 指代坏请求(如,参数错误)
404 (not found)- 资源不存在
406 (not acceptable)- 服务端不支持所需表示
500 (internal server error)- 通用错误响应
503 (Service Unavailable)- 服务端当前无法处理请求

POST   不安全且不幂等    使用服务端管理的(自动产生)的实例号创建资源      部分更新资源    如果没有被修改,则不更新资源

比如说,下单,新增一条订单成功了,但是又新增了一条订单,又成功了,可能因为网络,本来想插入一条记录的,那他就是不幂等的。因为在操作成功的情况下,又对数据库进行了不好的影响。

200(OK)- 如果现有资源已被更改
201(created)- 如果新资源被创建
202(accepted)- 已接受处理请求但尚未完成(异步处理)
301(Moved Permanently)- 资源的URI被更新
303(See Other)- 其他(如,负载均衡)
400(bad request)- 指代坏请求
404 (not found)- 资源不存在
406 (not acceptable)- 服务端不支持所需表示
409 (conflict)- 通用冲突
412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突)
415 (unsupported media type)- 接受到的表示不受支持
500 (internal server error)- 通用错误响应
503 (Service Unavailable)- 服务当前无法处理请求

PUT   不安全但幂等    用客户端管理的实例号创建一个资源     通过替换的方式更新资源     如果未被修改,则更新资源(乐观锁)

比如说改工资,更新之后,工资还是没有变化。所以他是幂等的,没有对数据库造成额外的影响。post方法就不一样了,会生成两个不同的id。

200 (OK)- 如果已存在资源被更改
201 (created)- 如果新资源被创建
301(Moved Permanently)- 资源的URI已更改
303 (See Other)- 其他(如,负载均衡)
400 (bad request)- 指代坏请求
404 (not found)- 资源不存在
406 (not acceptable)- 服务端不支持所需表示
409 (conflict)- 通用冲突
412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突)
415 (unsupported media type)- 接受到的表示不受支持
500 (internal server error)- 通用错误响应
503 (Service Unavailable)- 服务当前无法处理请求

DELETE   不安全但幂等     删除资源  

 删除资源肯定是不安全,  删除对一个id进行操作,不会有额外的影响。所以幂等

200 (OK)- 资源已被删除
301 (Moved Permanently)- 资源的URI已更改
303 (See Other)- 其他,如负载均衡
400 (bad request)- 指代坏请求
404 (not found)- 资源不存在
409 (conflict)- 通用冲突
500 (internal server error)- 通用错误响应
503 (Service Unavailable)- 服务端当前无法处理请求

安全 和 幂等 两个词的意思分别是

安全 就是不会出现  脏读,幻读,不可重复读

幂等 就是在操作成功的前提条件下,会不会对数据库造成额外的影响

 

转载于:https://www.cnblogs.com/inbeijing/p/10258917.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值