【理解RESTful架构】——阮一峰版

理解RESTful架构

  • 1.名称
  • 2.含义
  • 3.总结
  • 4.误区

入门web,但是并没有真正的学习过网络基础知识,对于RESTful并不是很了解

1.名称

互联网软件的架构原则,定名为REST,即Representational State Transfer的缩写。翻译是"表现层状态转化"。

2.含义

  1. 资源(Resource)

“表现层状态转换”,是资源的状态转换,是资源的表现层。
所谓的“资源”,就是网络上的实体,或者说是网络上的一个薪资信息。它可以是一个图片、一段音乐、一种服务,总之就是一个具体的存在。我们用一个URL(统一资源定位符)指向它,每种资源都有一个特定的URL。我们想要获取这个资源,只需要访问它的URL即可。
所谓的“上网”,就是与互联网上一系列的资源调动,调用其URL。

白话说就是,我们想要通过网络获取资源,就要给他标记一个URL,去访问这个URL即可。也就是RESTful风格。

  1. 表现层(Representation)

“资源"是一种信息实体,它可以有多种外在表现形式。我们把"资源"具体呈现出来的形式,叫做它的"表现层”(Representation)。
比如,文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现,甚至可以采用二进制格式;图片可以用JPG格式表现,也可以用PNG格式表现。

URI只代表资源的实体,不代表它的形式。它的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对"表现层"的描述。

  1. 状态转化(State Transfer)

互联网通信协议HTTP协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。
如何理解http是无状态协议,简单的说就是当客户端向服务器请求文件的时候,服务器并不会保存客户端的信息。比如,我们在几秒之内请求同一个文件,服务器不会因为第一次已经给过客户端了,就不在发送数据了,仍旧会向客户端发送数据。
所以说发生状态转换以及状态转换的记录都是发生在服务器上。
如果客户端想要操作服务器,就必须通过某种形式,使得服务器发生“状态转换”。而这种转换是表现层的转换,也就是资源的转换。
客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。通过这四种方式来实现状态转换。

3.总结

综合上面的解释,我们总结一下什么是RESTful架构:

(1)每一个URI代表一种资源;

(2)客户端和服务器之间,传递这种资源的某种表现层;

(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

4.误区

  1. 最常见的一种设计错误,就是URI包含动词。因为"资源"表示一种实体,所以应该是名词,URI不应该有动词,动词应该放在HTTP协议中。
  2. 另一个设计误区,就是在URI中加入版本号。

你可能感兴趣的:(Linux,restful)