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

REST ( REpresentational State Transfer ),State Transfer 为 "状态传输" 或 "状态转移 ",Representational 中文有人翻译为"表征"、"具象",合起来就是 "表征状态传输" 或 "具象状态传输" 或 "表述性状态转移"。数据库

在 REST 中的资源 (Resource) 表明整个网络上的资源。安全

HTTP Method 与 CURD 数据处理操做对应网络

HTTP方法spa

数据处理翻译

说明blog

POSTci

Create资源

新增一个没有id的资源io

GETtable

Read

取得一个资源

PUT

Update

更新一个资源。或新增一个含 id 资源(若是 id 不存在)

DELETE

Delete

删除一个资源

 

RESTFUL WEB SERVICE

RESTful Web Service (又称 RESTful Web API) 是一个使用 HTTP 并符合 REST 原则的 Web 服务。咱们知道,经过 URL 能够传送 GET 请求,在 表单指定 method="GET|POST" 来送出请求。但咱们要处理 PUT 或 DELETE 的请求呢?经过 RESTful 咱们能够简单 URI 来定义资源并和 HTTP 方法配合使用。

Resource 与 HTTP 方法的对应

资源

资源说明

GET

PUT

POST

DELETE

http://www.cnblogs.com/Products/

Products是一组资源集合

列出 该组资源集合中每一个资源的详细信息

更新 当前整组资源

新增 或附加一个新资源。该操做传回新资源的URL

删除 整组资源

http://www.cnblogs.com/Products/1

Products/1是单个资源

取得 指定的资源的详细信息

更新 或新增指定的资源

新增 或附加一个新元素

删除 指定的元素

 

在 RESTful 每一个资源有本身独立的 URI, Client 从资源集合或单个资源开始进入,无论是资源集合或单个资源,咱们都能与 HTTP 方法配合使用,例如,GET 下载,PUT 更新,POST 新增,DELETE 删除。

GET操做是安全的。所谓安全是指无论进行多少次操做,资源的状态都不会改变。好比我用GET浏览文章,无论浏览多少次,那篇文章还在那,没有变化。固然,你可能说每浏览一次文章,文章的浏览数就加一,这不也改变了资源的状态么?这并不矛盾,由于这个改变不是GET操做引发的,而是用户本身设定的服务端逻辑形成的。

PUT,DELETE操做是幂等的。所谓幂等是指无论进行多少次操做,结果都同样。好比我用PUT修改一篇文章,而后在作一样的操做,每次操做后的结果并无不一样,DELETE也是同样。顺便说一句,由于GET操做是安全的,因此它天然也是幂等的。

POST操做既不是安全的,也不是幂等的,好比常见的POST重复加载问题:当咱们屡次发出一样的POST请求后,其结果是建立出了若干的资源。

安全和幂等的意义在于:当操做没有达到预期的目标时,咱们能够不停的重试,而不会对资源产生反作用。从这个意义上说,POST操做每每是有害的,但不少时候咱们仍是不得不使用它。

还有一点须要注意的就是,建立操做可使用POST,也可使用PUT,区别在于POST 是做用在一个集合资源之上的(/uri),而PUT操做是做用在一个具体资源之上的(/uri/xxx),再通俗点说,若是URL能够在客户端肯定,那么就使用PUT,若是是在服务端肯定,那么就使用POST,好比说不少资源使用数据库自增主键做为标识信息,而建立的资源的标识信息究竟是什么只能由服务端提供,这个时候就必须使用POST。

相关文章
相关标签/搜索