某日突然想在 Server 端扩展一下 可以接受的 http 方法, 所以学习了一下其他方法的使用.

然后发觉一直对 POSTPUT 方法的区别很模糊.

于是干脆花时间研究一下

幂等性

先了解一下 幂等性, 我们是开发不是数学家, 所以尽可能简单地解释这个概念: 某操作多次执行后, 总体环境下最终结果相同, 那么就是幂等.

POST 和 PUT 的区别

看几个例子就可以理解了

添加操作

/user/creation?user_name=&pwd=

对于添加操作, 每次执行的结果确实相同, 所以一开始可能被误解成幂等.

但是实际上如果从总体环境下来看, 每次都多出一条记录, 所以并不是幂等, 非幂等的情况下都建议使用 POST 方法.

更新操作

/user/{user_id}/modify?pwd=**

对于这样的更新操作,每一次操作结果确实是相同的,所以这个操作是幂等的.

所以这个操作建议使用 PUT 方法.