RESTful介绍

REST(Representational State Transfer,表述性状态转移)是一种架构风格,在REST架构风格中,对象被抽象为一种资源,资源的命名用概念清晰的名词来定义。

RESTful的特点是方法信息存在于HTTP的方法中,作用域存在URI中。

REST的四个关键部分:

restful 的协议 restful传输协议_restful

1)资源:资源是一个抽象的概念,是对某类信息实体的抽象。
2)表述:资源的表述是对资源在某个特定时刻的状态的描述。即HTTP请求头Accept和Content-Type字段指定内容,例如txt、html、xml、json等
3)状态转移:指在客户端与服务器端交互的过程中,客户端能够通过资源的表述实现操作资源的目的。HTTP是一个无状态的协议,这意味着资源所有的状态都保存在服务器端。因此如果客户端想要操作资源必须通过某种手段让服务器发生状态的转移,而这种转移是建立在资源的表述之上的,所以通常将其称为表述层状态转移。
4)统一接口:客户端操作资源的方式通常是基于HTTP的4个动词:GET、POST、PUT、DELETE。不管请求的URI是什么请求的资源有什么不同,但操作资源的接口都是统一的。

RESTful常见方法

HTTP提供了四种基本方法。GET、POST、PUT、DELETE。

方法

描述

GET

为了获取一个表述而作的一次请求,该种类型的请求主观上并没有去改变服务器上资源状态的意图。即获取资源的某个表述。

POST

基于给定的表述信息,在当前资源的下一级创建新的资源。

DELETE

销毁一个资源。

PUT

用给定的表述信息替换资源的当前状态。

RESTful URI规则

对于命名资源的方式,URI有三条基本规则:
① 用路径变量来表达层次结构:/parent/child。通过使用斜线来分割各个作用域信息以形成一个层次结构。
② 在路径变量里加上标点符号,以消除误解:/parent/child1;child2。用逗号或分号表达非层次结构,当作用域信息的次序有关紧要时就用逗号,否则就用分号。
③ 用查询变量来表达算法的输入:/serach?q=jellyfish&start=20。