轻松搞懂POST与PUT的区别
有的文档说,HTTP 协议的 PUT 方法用于新建资源,POST 方法用于修改资源;另一些文档说,应该反过来做。其实这两种说法都不完全对。
-
POST 用来创建给定URL的子资源
譬如我们在
/food
下创建一个苹果:POST /food
body:
创建完成后,可以通过访问
/food/apple
来得到苹果的相关信息(数量、重量)。 -
PUT 用来创建/更新给定URL对应的资源
如果已经明确知道资源(苹果)的 URI:
/food/apple
,使用PUT来创建/替换 URI 对应的资源:PUT /food/apple
body:
-
PUT 用于替换 URI 对应的资源时,它的操作具有幂等性
-
当创建资源成功后,POST 应该返回 201(Created) ,PUT 则必须返回 201