一、什么是REST?
1、概述
REST全称是Representational State Transfer(表现层状态转化),省略了主语 "资源"(Resources)。REST指的是一种client与server之间的交互形式,REST本身不实用,实用的是设计RESTful API(REST风格的网络接口)。如果一个架构符合REST原则,就称他为RESTful架构。要理解REST概念,首先了解名称的意义。
2、资源(Resources)
所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。他可能是一段文本,一张图片,一个视频或者一种服务,总之就是一种具体的实体。我们可以用一个URI(统一资源定位符)指向他,每个"资源"都对应一个特定的URI。要获取某个资源,只需要访问其对应的URI即可。因此URI就成了每一个资源的地址或独一无二的身份识别符。所谓"上网",就是与互联网上一系列"资源"互动,调用他的URI。
3、表现层(Representation)
"资源"是一种信息实体,他可以有多种表现形式,我们把"资源"具体表现出来的形式。叫做他的"表现层"。例如:文本可以有txt格式,也可以有html与json格式;图片可以有PNG格式,也可以有JPG格式。URL只代表资源的实体,不代表他的形式。严格来说,有些网址最后的".html"后缀名是不需要的,因为这个后缀名表示格式,属于"表现层"范畴,而URL应该只代表"资源"的位置。他的具体表现形式,应该在HTTP请求的头部信息中用Accept和Content-Type字段指定,这两个字段才是对"表现层"的描述。
4、状态转化
访问一个网站,就代表着客户端与服务器的一次交互,在交互过程中,势必会有数据和状态的变化。互联网通信协议HTTP协议,是一个无状态协议。这就意味着,所以的状态都保存在服务器端。如果客户端想要操作服务器,必须使用某种手段使得服务器端发生"状态转化"(State Transfer)。而这种转化是建立在表现层上的,所以就是"表现层状态转化"。
客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。他们分别对应四种操作:GET用来获取资源,POST用来新建资源(也可以用来更新资源),PUT用来更新资源,DELETE用来删除资源。
5、总结
URL定位资源,HTTP动词(GET,POST,PUT,DELETE)描述操作。
二、实例
Server提供的Restful API中,URL中只使用名词来指定资源,原则上不使用动词。"资源"是REST架构或者说整个网络处理的核心。比如:




参考文章:
1、理解RESTful架构—阮一峰(http://www.ruanyifeng.com/blog/2011/09/restful.html?bsh_bid=1717507328)
2、知乎提问:REST架构该如何理解,覃超回答(https://www.zhihu.com/question/27785028)
网友评论