本文仅仅是名词解释:
网站即软件。互联网软件,采用客户端/服务器模式,通过互联网通信,具有高延时、高并发等特点。
RESTful架构,是一种能够流行的互联网软件架构,结构清晰、符合标准、易于理解,扩展方便。
REST:Representational State Transfer
Resources(资源)
REST的名称(表现层状态转化),省略了主语,表现层是资源的表现层。
所谓资源,是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一种服务,可以通过URI指向它,要获取这种资源,访问它的URI就可以。所谓"上网"就是与互联网上的资源互动,调用它的URI。
Representation(表现层)
把资源呈现的形式,就是资源的表现层。
比如文本可以用txt格式表现,也可以是HTML、XML、JSON格式表现,甚至可以是二进制格式。URI只代表资源的实体,不代表它的形式。从这个角度来说,某些网址后面的.html后缀名是不必要的,这是表现层的范畴,而URI应该只代表资源的位置,它的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段是对表现层的描述。
State Transfer(状态转化)
访问一个网址,是客户端与服务器端的一个互动过程。这个过程涉及到数据和状态的变化。
如果客户端想要操作服务器,必须通过某种手段,让服务器发生状态转化,这种转化是建立在表现层之上的,所以就是表现层状态转化。
客户端只能使用HTTP这种无连接协议,这种协议里有一些表示操作方式的动词: GET,POST,PUT,DELETE。
总结一下什么是RESTful架构:
- 每一个URI代表一种资源
- 客户端与服务器之间,传递这种资源的某种表现层
- 客户端通过四个HTTP动词,对服务器资源进行操作,实现"表现层状态转化"
该架构会出现两种明显的错误设计:
- URI包含动词
- URI中加入版本号
以上内容出自文章《理解RESTful架构》