REST and RESTful
1.REST的解释
RE(Representational):REST 资源实际上可以用各种形式来进行表述,包括XML,JSON,甚至HTML
S(state):当使用REST的时候,我们更关注资源的状态而不是对资源采取的行为.
T(Transfer):REST涉及到转移资源数据,它以某种表述形式从一个应用转移到另外一个应用.
资源是由URI来指定。所谓「上网」,就是与互联网上一系列的「资源」互动,调用它的URI。
对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。
通过操作资源的表现形式来操作资源。具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定。
资源的表现形式则是XML或者HTML,取决于读者是机器还是人,是消费web服务的客户软件还是web浏览器。当然也可以是任何其他的格式。「表现层状态转化」,其实它省略了主语。「表现层」其实指的是「资源」的「表现层」,所以通俗来讲就是:
资源在网络中以某种表现形式进行状态转移。分解开来:
- Resource:资源,即数据。比如newsfeed,friends,order等;
- Representational:某种表现形式,比如用JSON,XML,JPEG等;
- State Transfer:状态变化。通过HTTP动词实现。
然后再来理解一个具体的RESTful架构——面向资源的架构(Resource-Oriented Architecture,ROA):
- 资源是由URI来指定。所谓「上网」,就是与互联网上一系列的「资源」互动,调用它的URI。
- 对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。
- 通过操作资源的表现形式来操作资源。具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定。
- 资源的表现形式则是XML或者HTML,取决于读者是机器还是人,是消费web服务的客户软件还是web浏览器。当然也可以是任何其他的格式。
2.REST资源
REST中,资源通过URL进行识别和定位.至于RESTful URL的结构并没有严格的规则,但是URL应该能够识别,而不是
简单的发一条命令到服务器上,再次强调,关注的核心是事物,而不是行为.
3.REST行为
REST中会有行为,他们是通过HTTP方法来定义的.具体来将也就是GET,POST,PUT,DELETE,PATCH以及其他的
HTTP方法构成了REST中的动作,这些动作通常会匹配称CRUD的操作.