RESTful是一种软件架构风格、设计风格
REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。
要理解RESTful架构,最好的方法就是去理解Representational State Transfer这个词组到底是什么意思,它的每一个词代表了什么涵义。如果把这个名称搞懂了,也就不难体会REST是一种什么样的设计。
1. 资源
RESTful架构中,REST代表“资源”(Resoures)的表现层。
所谓的“资源”,就是网络上的一个实体,或者或是网络上的一个具体信息。而所谓“上网”,就是与互联网上一系列的“资源”互动,调用它的URI。
2. 表现层(Representation)
文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现,甚至可以采用二进制格式;图片可以用JPG格式表现,也可以用PNG格式表现,但是为了区分需求,所以需要一个规范,例如纯文字文本,写文章等等,一般为了规范,会要求选择txt,wps格式等等。
而“资源”作为一种信息实体,相同其也有许多表现形式。而将“资源”呈现出来的形式,叫做"表现层"(Representation)。
而URI只代表"资源的位置",具体的表现形式,是在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对"表现层"的描述。
3. 状态转化(State Transfer)
访问一个网站,代表客户端和服务器的一个互动过程。在这个过程中,涉及到数据和状态的变化。
如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"(State Transfer)。而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。
客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。
2. 综述
(1)每一个URI代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。
网友评论