← 知识文章

HTTP FIELD GUIDE

HTTP 方法与幂等性

了解常用 HTTP 方法的含义,以及请求何时可以安全重试。

方法表达什么?

方法说明请求期望执行的操作。GET 获取资源表示,HEAD 只获取元信息;POST 提交数据供服务端处理,PUT 替换资源,DELETE 请求删除资源。接口即使理解某种方法,也可能用 405 拒绝它。

安全与幂等不同

安全方法预期只读取数据;幂等方法重复执行时,预期对服务端产生相同效果。GET、HEAD 同时满足两者。PUT 和 DELETE 按定义是幂等的,但多次调用的响应仍可能不同。POST 通常不保证幂等。

为什么影响重试?

网络超时不能证明服务端没有处理请求。盲目重试 POST 可能生成两笔订单。需要安全重试写入时,应使用接口明确支持的幂等键,或先查询资源状态。方法名称也无法保证服务端实现符合规范。

参考资料