springmvc基础知识(13):了解REST和RESTful

了解REST和RESTful
REST : 即 Representational State Transfer 。(资源)表现层状态转化。
资源 : 网络上的一个实体或者说是网络上的一个具体信息。 每种资源对应一个特定的URI,因此URI为每一个资源的独一无二的识别符。要获取这个资源, 访问它的URI就可以。
表现层(Representation):把资源具体呈现出来的形式,叫做它的表现层 。比如,文本可以用 txt 格式表现,也可以用 HTML 格式、 XML 格式、 JSON 格式表现,甚至可以采用二进制格式。
状态转化 : 每发出一个请求,就代表了客户端和服务器端的一次交互过程。HTTP协议是一个无状态协议,即所有的状态都保存在服务器上。因此, 如果客户端想要操作服务器,必须通过某种手段, 让服务器端发生“状态转化”。而这种转化是建立在表现层之上的,所以就是 “表现层状态转化”。 具体说, 就是 HTTP 协议里面,四个表示操作方式的动词: GET、 POST、 PUT、 DELETE。它们分别对应四种基本操作: GET 用来获取资源, POST 用来新建资源, PUT 用来更新资源, DELETE 用来删除资源。
RESTful:符合REST原则的架构方式即可称为RESTful。
    
因此用户想要操作服务器,必须通过某种手段,让服务器发生状态变化。而这种状态变化是建立在表现层之上的,所以就是“表现层状态变化”。

在有RESTful之前,访问网页的方式:
查询: http://localhost/user/query/1  GET请求
新增: http://localhost/user/save  POST 请求
修改: http://localhost/user/update/1  POST请求
删除   http://localhost/user/delete/1  GET/POST请求

RESTful用法:
查询: http://localhost/user/1  GET请求
新增: http://localhost/user/  POST 请求
修改: http://localhost/user/1  PUT 请求
删除   http://localhost/user/1  DELETE 请求

不使用RESTful前你每次请求的接口或者地址,都在做描述,例如查询的时候使用了query,新增的时候用了save,其实完全没有这个必要,我使用了GET请求就是查询,使用POST请求就是新增等,我的意图很明显,完全没有必要做描述,这就是为什么有了RESTful。


具体的说,就是使用HTTP协议的请求方式区分操作:
            http请求类型
                 资源操作                         是否幂等                      是否安全
                    GET                 SELECT                                    是                                是
                   POST                 INSERT                                    否                               否
                    PUT                 UPDATE                                    是                               否
                  DELETE                 DELETE                                    是                               否

  幂等性:对同一REST接口的多次访问,得到的资源状态是相同的。
  安全性:对该REST接口访问,不会使服务器端资源的状态发生改变。

restful就是旧技术,新风格。



你可能感兴趣的:(springmvc,REST和RESTful)