POST,PUT和PATCH的区别

常用的请求方法里面GET请求和POST请求我们都非常熟悉了,今天来谈谈POST,PUT以及PATCH,在了解这些之前我们先理解一个概念 幂等性:

幂等性:

HTTP协议本身是一种面向资源的应用层协议,但对HTTP协议的使用实际上存在着两种不同的方式:

  1. 一种是RESTful的,它把HTTP当成应用层协议,比较忠实地遵守了HTTP协议的各种规定;
  2. 另一种是SOA的,它并没有完全把HTTP当成应用层协议,而是把HTTP协议作为了传输层协议,然后在HTTP之上建立了自己的应用层协议。

GET方法用于获取资源,不应有副作用,所以是幂等的。比如:GET http://www.bank.com/account/123456,不会改变资源的状态,不论调用一次还是N次都没有副作用。请注意,这里强调的是一次和N次具有相同的副作用,而不是每次GET的结果相同。GET http://www.news.com/latest-news这个HTTP请求可能会每次得到不同的结果,但它本身并没有产生任何副作用,因而是满足幂等性的。

DELETE方法用于删除资源,有副作用,但它应该满足幂等性。比如:DELETE http://www.forum.com/article/4231,调用一次和N次对系统产生的副作用是相同的,即删掉id为4231的帖子;因此,调用者可以多次调用或刷新页面而不必担心引起错误。

POST和PUT的区别容易被简单地误认为“POST表示创建资源,PUT表示更新资源.但实际上两者都可以用来创建或是更新数据.单从技术上来说,他们并没有什么区别.但是在HTTP规范中POST是非等幂的,多次调用会产生不同的结果,比如:创建一个用户,由于网络原因或是其他原因多创建了几次,那么将会有多个用户被创建.而PUT id/456则会创建一个id为456的用户,多次调用还是会创建的结果是一样的,所以PUT是等幂的.

PATCH一般是用来局部更新资源的,假设我们有一个UserInfo,里面有userId, userName, userGender等10个字段。可你的编辑功能因为需求,在某个特别的页面里只能修改userName,这时候的更新怎么做?

人们通常(为徒省事)把一个包含了修改后userName的完整userInfo对象传给后端,做完整更新。但仔细想想,这种做法感觉有点二,而且真心浪费带宽(纯技术上讲,你不关心带宽那是你土豪)。

于是PATCH诞生,只传一个userName到指定资源去,表示该请求是一个局部更新,后端仅更新接收到的字段。

而PUT虽然也是更新资源,但要求前端提供的一定是一个完整的资源对象,理论上说,如果你用了PUT,但却没有提供完整的UserInfo,那么缺了的那些字段应该被清空.另外PUT会有一个create操作,加入更新的id不存在,会进行创建,而PATCH则没有这个.

(0)

相关推荐

  • HTTP八种请求类型

    表白:黑白圣堂血天使,天剑鬼刀阿修罗.  讲解对象:/HTTP八种请求类型 作者:融水公子 rsgz 网络安全 网络安全教程 http://www.rsgz.top/post/771.html 1 g ...

  • HTTP 请求方法

    根据 HTTP 标准,HTTP 请求可以使用多种请求方法.HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法.HTTP1.1 新增了六种请求方法:OPTIONS.PUT.PAT ...

  • RESTful设计中的常见疑问

    最近写了几个有关RESTful的API相关内容,也谈谈对常见问题的自己的理解. 1.什么是RESTful 详情可以看http://www.ruanyifeng.com/blog/2011/09/res ...

  • 儒、释、道三家文化的七大区别

    闲云谷 峰下闲云云上松,珍兰奇蕙伴节丛:不忍移爱进瓦罐,卷书抱坛迁谷中. 994篇原创内容 公众号 一.文化主旨 儒家文化--积极进取的文化 儒家倡导知识的获取和品德的培养,是一种积极向上的文化. 道 ...

  • 招摇撞骗罪和诈骗罪有什么区别

    招摇撞骗罪和诈骗罪都表现为欺骗行为,招摇撞骗罪也可以像诈骗罪一样骗取财物,两者容易混淆,大家知道招摇撞骗罪和诈骗罪有什么区别吗? 律师解答: 招摇撞骗罪侵犯的客体主要是国家机关的威信及其正常活动,而诈 ...

  • 香港服务器托管和租用有什么区别?

    香港服务器托管和租用有什么区别?托管和租用都是服务器选择使用方式,想要知道香港服务器托管和租用两种方式有什么区别以及哪种方式比较好,就需要深入了解它们,下面我们就聊聊香港服务器托管和租用的区别. 什么 ...

  • “全款”和“贷款”买房有什么区别?内行:10年后,差距一目了然

    因为现在国内的房价总体上呈现出不断上涨的趋势,尤其是在一二线城市靠近市中心的房子更是高到令现在的不少家庭都有着很大的生活重担,对于现在的年轻人来说也很难能够在他们的承受范围之内. 所以,如果高房价持续 ...

  • “普通人vs 女网红的区别...” 哈哈哈哈哈哈哈哈哈过于真实!

    网上冲浪久了 不得不感叹 现在的女网红真的很努力 为了拍出 前凸后翘的照片 不管何时何地 都执着地凹着浮夸的摆拍造型 网友甚至总结出了当网红的精髓 普通人vs 女网红的区别 学废了 离网红就差一个骨盆 ...

  • 木耳秋耳只差一个字,区别大不同!牢记2点,轻松分辨,不被忽悠

    买木耳有技巧,遇见这4种,不管多少钱也不要买,难吃又费钱 各位读者朋友们大家好,感谢阅读我分享的美食文章,经验和大家一起共享,今天我要和大家分享的内容是:『木耳秋耳只差一个字,区别大不同!牢记2点,轻 ...

  • 药品甲类和乙类的区别

    对于药品,我们都很熟悉.不管怎么样,都有用过各类药物.其实,药品的种类多种多样.世界上有多少种疾病,相对应就会有多少种药物.有句话不是说对症下药,说的就是药物和疾病的关系.由于对人的重要性,因此由不得 ...

  • 山葵中国什么地方有种?山葵和芥末的区别

    芥末有多种,一种是绿色芥末在日本很是常见名为山葵,而中国多以淡黄色芥末多见主要是辣根做的.那么,山葵中国什么地方有种?山葵和芥末的区别是什么? 山葵中国什么地方有种 山葵:中文学名山萮菜,拉丁学名Eu ...