啥是RESTful
RESTful全称Representational State Transfer,也就是表现层状态转化的意思
RestFul是一个由Http协议的主要设计者Fielding编写的互联网软件的架构原则,如果一个架构符合REST原则,那么就称它为RESTful架构
好的,知道了这些,我们就要了解一下RESTful的具体含义了
-
资源(Resources)
表现层实际值得是“资源”的表现层。
所谓资源,就是网络上的一个实体,比如一段文本、一张图片之类
每个资源对应了一个特定的URI(统一资源定位符),要获取这个资源,就需要知道该资源的URI。 -
表现层(Representation)
资源是信息实体,它有多种外在的表现形式,我们把“资源”具体呈现出来的形式叫做“表现层”
比如文本可以用txt表示,也可以用HTML格式、XML格式、JSON格式表现
URI只代表资源的位置,资源的具体表现形式应该在HTTP请求头信息中用Accept和Content-Type字段指定 -
状态转换(State Transfer)
HTTP协议是一个无状态的协议,这意味着所有的状态都保存在服务器端。所以客户端想要操作服务器,必须通过某种手段,让服务器端发生“状态转换”。而这种转换时建立在表现层上的,这就是“表现层状态转换”。
客户端用到的手段,只能是HTTP协议,具体来说,是HTTP协议中,四个表示操作方式的动词:GET POST DELETE PUT 稍后我们再细说 -
总结一下RESTful架构
(1) 每个URI代表一种资源
(2)客户端和服务器之间,传递着这种资源的某种表现层
(3)客户端通过四个HTTP动词,对服务器资源进行操作,实现“表现层状态转换”
HTTP的四个动词
GET
GET是用来获取资源的,但它和我们正常使用的GET有一点区别
RESTful中我们使用的Get请求
http://localhost:8080/user/1
user指的就是资源,1指的是用户id为1
就相当于请求
http://localhost:8080/user?userid=1
POST
post用来发送请求
RESTful中
http://localhost:8080/user
发送的数据是使用application/json格式 {userid:1,name:jack}
意思是新增一条记录,用户id为1,name为jack
DELETE
delete用来删除资源
RESTful中
与GET请求是一致的
http://localhost:8080/user/1
意思是删除userid=1的用户
但因为是delete方式的,所以两者可以进行区分
PUT
put用来更新资源
RESTful中
http://localhost:8080/user/1
数据的格式也是使用application/json格式 {name:jack}
意思是将userid为1的用户的name更改为jack
RESTful的数据返回
RESTful返回的数据格式全部都是Application/json 所以视图不会跳转
这样带来的好处是前端可以是任何语言,可以是php,也可以是node等等,很好的做到了前后端分离