轻松搞懂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

引用

rfc2616-sec9.html#sec9.5

posted @ 2022-04-15 12:02  Liaofy  阅读(419)  评论(0编辑  收藏  举报