Skip to content

GET、POST 与幂等性:方法语义、缓存与副作用

主题边界

  • GET / POST 题不能只答“GET 获取、POST 提交”,核心是方法语义、缓存友好性和副作用边界。
  • 幂等性讨论的是重复请求是否会产生额外副作用,这和 HTTP 方法选择、重试策略直接相关。

机制与流程

  • GET 按语义应是安全且幂等的,通常更适合被缓存、书签化和重复获取。
  • POST 语义更偏向提交或触发处理,不天然幂等,重复发送可能产生重复创建、扣款、消息投递等副作用。
  • 幂等设计可以通过幂等键、资源版本控制、服务端去重或 PUT / PATCH 语义选择来强化。

关键差异

  • 安全性强调“不应改变资源状态”,幂等性强调“重复调用结果可预期”,两者不是同义词。
  • GET 一般更适合缓存和重试;POST 是否可重试要看接口语义和服务端实现。

边界条件

  • 现实世界里 GET 也可能被错误实现为有副作用,这不代表语义上它就应该如此。
  • POST 也可以被设计成幂等,例如支付下单类接口通过幂等键保证重复提交不重复生效。

工程落点

  • 接口治理里,方法语义和幂等策略会直接影响浏览器缓存、CDN 缓存、重试策略和用户体验。
  • 如果这道题能自然接到超时重试和业务副作用控制,已经超出基础定义层。

相关主题