幂等性

幂等操作重复执行与执行一次的效果相同;HTTP 中 GET、PUT、DELETE 定义为幂等方法,POST 通常不是,因此关键写操作需要额外设计幂等机制。

方法

方法是否安全是否幂等说明
GET/HEAD是是只读,可缓存
PUT否是整体替换,重复执行结果一致
DELETE否是重复删除语义相同
POST否否需要业务侧幂等键
幂等的判定依据是“效果”,而非响应码或响应体完全相同。

易错点

  • 重试机制加上未幂等的接口,产生重复订单或重复扣款
  • 把幂等理解为“加唯一索引”即可,忽略响应结果复现需求

数据来源与参考

  • RFC 9110 HTTP Semantics(9.2.2 幂等方法)
  • Chris Richardson《Microservices Patterns》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌