RESTFul中的那些事(1)---在RESTFul中,HTTP Put和Patch操作的区别?

原创 2014年06月13日 12:22:09

笔者在用调用Google Calendar和Google Tasks的RESTFul API的时候,遇到了一个特殊的操作,PATCH。那么PATCH操作和PUT操作的区别是什么呢?

根据PATCH for HTTP Method 一文中的描述(http://tools.ietf.org/html/rfc5789)我们知道,PATCH 操作主要用来更新部分资源,而且其不是幂等(所谓的幂等就是每次更新后,结果不变)的。Put操作主要用来更新全部的资源,而且其实幂等的。 那么PATCH操作的优势是什么呢?因为PATCH操作用来更新部分资源,所以可以节省网络带宽。

PATCH /user/henryzhu HTTP/1.1 
<user> 
<firstname>Henry Zhu</firstname> 
</user>

当然,PATCH操作也有其缺点,那就是

1.PATCH操作不是安全的和幂等的

2.实现PATCH操作语义的应用必须保证当前的PATCH操作是最小粒度,即它的原子性。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

HTTP方法--Put 还是 Patch?

下面这四个就不需要解释了: POST = 新增 GET = 读取 PUT = 更新 DELETE = 刪除POST or PUT?PUT puts a file or resource at ...

RESTFUL服务中POST/PUT/PATCH方法的区别

经常会混淆HTTP的POST/PUT方法,因为这两个方法似乎都可以用来创建或更新一个资源。区别是细微但清楚的:POST方法用来创建一个子资源,如 /api/users,会在users下面创建一个use...
  • iefreer
  • iefreer
  • 2013年08月27日 19:41
  • 40033

RESTFUL服务中POST/PUT/PATCH方法的区别

RESTFUL服务中POST/PUT/PATCH方法的区别

[整理]通过http1.1 GET, POST, PUT, PATCH, DELETE, HEAD, TRACE理解真正的RESTFUL

最早的时候,我们只需要 GET 和 POST 方法,POST 方法的引入也只是为了消除 URL 过长,参数隐藏,上传文件的问题,完全和语义无关。接触到 RESTful 之后,我们开始思考 GET 和 ...

RESTFul中的那些事(2)----如何支持RESTFul的HTTP Patch方法?

们在调用RESTFul服务的时候,有的时候,第三方的服务会提供支持PATCH 操作的方法,在这种情况下,我们如果我们下面的这种方式, 去调用PATCH操作,肯定会返回40X的错误。那么,解决的方案是什...

RESTful Web 服务四种操作POST/DELETE/PUT/GET

关于REST及RESTful的概念,已有不少文章介绍,这里整理几篇我觉得不错的参考: 维基百科的定义: REST什么是REST跟RESTful? REST理论的中文详述,其中你可以了解到WCF ...
  • john548
  • john548
  • 2016年08月25日 11:05
  • 3131

Restful风格API中用put还是post做新增操作有什么区别?

这个是华为面试官问我的问题,回来我找了很多资料,想验证这个问题。在回答问题之前,还需要搜集一些基础知识。 一、HTTP协议详解   HTTP是Hyper Text Transfer Proto...
  • chlu113
  • chlu113
  • 2016年07月07日 18:09
  • 8768

restful:put操作资源可能存在的安全问题

REST定义:REST(Representational State Transfer ),有中文翻译为"具象状态传输"(也有:"代表性状态传输")。是由 Roy Thomas Fielding博士 ...

http、websocket;restful、rpc的区别

HTTP 是一个属于应用层的面向对象的协议,HTTP 协议一共有五大特点:1、支持客户/服务器模式;2、简单快速;3、灵活;4、无连接;5、无状态。基于HTTP协议的客户/服务器模式的信息交换过程,分...
  • btqszl
  • btqszl
  • 2017年03月17日 20:02
  • 1628

WebService SOAP、Restful和HTTP(post/get)请求区别

web service(SOAP)Webservice的一个最基本的目的就是提供在各个不同平台的不同应用系统的协同工作能力。Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RESTFul中的那些事(1)---在RESTFul中,HTTP Put和Patch操作的区别?
举报原因:
原因补充:

(最多只允许输入30个字)