POST 和 PUT 方法区别

1年前 (2023) 程序员胖胖胖虎阿
140 0 0

🍅 Java学习路线:搬砖工逆袭Java架构师

🍅 简介:Java领域优质创作者🏆、CSDN哪吒公众号作者✌ 、Java架构师奋斗者💪

🍅 扫描主页左侧二维码,加入群聊,一起学习、一起进步 

🍅 欢迎点赞 👍 收藏 ⭐留言 📝   

  1. 有的观点认为,应该用POST来创建一个资源,用PUT来更新一个资源;
  2. 有的观点认为,应该用PUT来创建一个资源,用POST来更新一个资源;
  3. 还有的观点认为可以用PUT和POST中任何一个来做创建或者更新一个资源。

这些观点都只看到了风格,争论起来也只是争论哪种风格更好,其实,用PUT还是POST,不是看这是创建还是更新资源的动作,这不是风格的问题,而是语义的问题。

举一个简单的例子,假如有一个博客系统提供一个Web API,模式是这样http://superblogging/blogs/{blog-name},很简单,将{blog-name}替换为我们的blog名字,往这个URI发送一个HTTP PUT或者POST请求,HTTP的body部分就是博文,这是一个很简单的REST API例子。我们应该用PUT方法还是POST方法?取决于这个REST服务的行为是否是idempotent的,假如我们发送两个http://superblogging/blogs/post/Sample请求,服务器端是什么样的行为?如果产生了两个博客帖子,那就说明这个服务不是idempotent的,因为多次使用产生了副作用了嘛;如果后一个请求把第一个请求覆盖掉了,那这个服务就是idempotent的。

前一种情况,应该使用POST方法,后一种情况,应该使用PUT方法。

现在的项目:insert --> post;update --> put

版权声明:程序员胖胖胖虎阿 发表于 2023年9月3日 下午2:16。
转载请注明:POST 和 PUT 方法区别 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...