一、介绍(REST)
REST即Representational State Transfer的缩写,"体现层状态转化"。REST API是前后端拆散的最佳实际,是开发的一套规范或者说是一套标准,不是框架。益处:
1、轻量,间接通过http,不须要额定的协定,通常有post/get/put/deletec等操作;
2、面向资源,高深莫测,具备自解释性;
3、数据形容简略,个别通过json或者xml实现数据间的通信。
二、资源(Resources)
REST的名称"体现层状态转化"中,省略了主语。"体现层"其实指的是"资源"(Resources)的"体现层"。所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。它能够是一段文本、一张图片、一种服务,总之就是一个具体的切实。你能够用一个URI(对立资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,拜访它的URI就能够,因而URI就成了每一个资源的地址或举世无双的辨认符。所谓"上网",就是与互联网上一系列的"资源"互动,调用它的URI。
三、体现层(Representation)
"资源"是一种信息实体,它能够有多种外在表现形式。"资源"具体出现进去的模式,叫做它的"体现层"(Representation)。比方,文本能够用txt格局体现,也能够用HTML格局、XML格局、JSON格局体现,甚至能够采纳二进制格局;图片能够用JPG格局体现,也能够用PNG格局体现。URI只代表资源的实体,不代表它的模式。严格地说,有些网址最初的".html"后缀名是不必要的,因为这个后缀名示意格局,属于"体现层"领域,而URI应该只代表"资源"的地位。它的具体表现形式,应该在HTTP申请的头信息中用Accept和Content-Type字段指定,这两个字段才是对"体现层"的形容。
四、状态转化(State Transfer)
拜访一个网站,就代表了客户端和服务器的一个互动过程。在这个过程中,势必波及到数据和状态的变动。互联网通信协议HTTP协定,是一个无状态协定。这意味着,所有的状态都保留在服务器端。因而,如果客户端想要操作服务器,必须通过某种伎俩,让服务器端产生"状态转化"(State Transfer)。而这种转化是建设在体现层之上的,所以就是"体现层状态转化"。客户端用到的伎俩,只能是HTTP协定。具体来说,就是HTTP协定外面,四个示意操作形式的动词:GET、POST、PUT、DELETE。别离对应四种基本操作:GET用来获取资源,POST用来新建资源(也能够用于更新资源),PUT用来更新资源,DELETE用来删除资源。
五、综述
综合下面的解释,总结一下什么是RESTful架构:
1、每一个URI代表一种资源;
2、客户端和服务器之间,存在传递这种资源的某种体现层;
3、客户端通过四个HTTP动词,对服务器端资源进行操作,实现"体现层状态转化"。