REST
风格是面向网络的软件架构设计风格,其针对的是基于网络的软件架构.当软件架构设计符合 REST 风格时,则可以描述为该设计是
Restful 的.而在实际场景中,REST 论文中描述了应用 REST 风格基本方式,即 REST
(表述性状态转移).
面向资源
网络上的一个实体,一个具体信息,都可以描述为一个
资源 ,资源可以是文本、图片、音频、服务等具体存在.在网络中,每种资源都对应与一个 URI (统一资源标识符)地址,通过 URI
就可以访问到该资源.而我们通常的上网,即是对资源的各种操作.
在
Restful 架构中,所有的接口应当采用面向资源的接口设计,即对于接口的访问地址指向其 URI 地址.
表述性
资源在网络上呈现出来的可能是多种形式,例如
HTML 、 XML 、 JSON
、图片等等.而客户端与服务器之间则传输的是资源的这种具体表现形式.客户端与服务端的互动,本质上就是通过这些表现形式,实现对资源的操作.
按照面向资源接口设计的要求,通常所见到的
URI 地址中,*.html / *.xml / *.json 等扩展名,其实都指向了当前资源的具体表现形式,而 URI
严格意义上仅指向了资源实体,并不包含具体表现形式.
状态转移
为了使操作资源,也即使资源发生状态转移,按照
REST 的要求,客户端若想要操作服务端资源,需要通过 HTTP 协议进行操作.而在 HTTP
协议中,规定了若干用于具体操作的动词,指向了不同的操作类型.
一般而言,对于资源的操作可以表示
CRUD 四类最基本的操作,即 增删改查 .而 HTTP 协议中的通常用以下动词表示这四类具体的操作:
GET
:查询资源操作.
POST
:新建资源操作,也可以用于更新资源.
PUT
:更新资源操作.
DELETE
:删除资源操作.
在实际应用中,客户端与服务端之间的交互,即是建立在
HTTP 协议之上,通过面向资源的接口地址,使用 HTTP
协议动词作为操作描述,进而实现客户端与服务端的交互过程.