REST
REST(面向资源)
REST(Representation State Transfer)表现层状态转移
来源
早期,HTTP 协议使用没有特定的协议规范,每个人对 URL 的理解不一致。导致使用上十分的混乱。为了解混乱,推出了一个架构理念来进行统一
概念
URI 定位资源,用HTTP(GET,POST,DELETE,UPDATE)描述操作
它不是具体的规范,也不是技术,它是一种理念,一种架构风格,是所有 Web 应用都应该遵守的架构设计指导原则
关键词
-
资源(Resource):服务器中可以被 URI 标识的任何信息都可以是资源。
-
资源的表述(Representation):服务器端资源在某个特定时刻表现形式。资源的表现形式可以有多种格式,例如 HTML/XML/JSON/ 纯文本 / 图片 / 视频 / 音频等等
-
状态转化(State Transfer):客户端请求服务器,使资源的表现形式发生改变。HTTP 协议是无状态协议,导致所有资源的状态都保存在服务器上。客户端想要操控服务端,使数据发生改变,只能通过 HTTP 协议。所以可以用 HTTP 的动词来描述,资源的状态转换
GET(SELECT):从服务器取出资源(一项或多项)。 POST(CREATE):在服务器新建一个资源。 PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源) DELETE(DELETE):从服务器删除资源。 -
统一接口:通过统一的接口来对资源执行各种操作
-
超文本驱动:
通过访问 URL 超链接的形式,来获取数据,进行改变
将 Web 应用看作是一个由很多状态(应用状态)组成的有限状态机。资源之间通过超链接相互关联,超链接既代表资源之间的关系,也代表可执行的状态迁移。在超媒体之中不仅仅包含数据,还包含了状态迁移的语义。以超媒体作为引擎,驱动 Web 应用的状态迁移。通过超媒体暴露出服务器所提供的资源,服务器提供了哪些资源是在运行时通过解析超媒体发现的,而不是事先定义的。从面向服务的角度看,超媒体定义了服务器所提供服务的协议。客户端应该依赖的是超媒体的状态迁移语义,而不应该对于是否存在某个 URI 或 URI 的某种特殊构造方式作出假设。一切都有可能变化,只有超媒体的状态迁移语义能够长期保持稳定。
主要特征
REST 风格的架构所具有的 6 个的主要特征:
- 面向资源(Resource Oriented)
- 可寻址(Addressability)
- 连通性(Connectedness),不同资源之间的关联关系,通过超链接将资源关联
- 无状态(Statelessness)
- 统一接口(Uniform Interface)
- 超文本驱动(Hypertext Driven)
Restful
基于 Rest 架构理念,开发的架构
(1)每一个URI代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。
@RequestMapping 就是用到了 RestFul
参考链接
怎样用通俗的语言解释REST,以及RESTful? https://www.zhihu.com/question/28557115
理解本真的 REST 架构风格 https://www.infoq.cn/article/understanding-restful-style/
理解RESTful架构 - 阮一峰的网络日志 http://www.ruanyifeng.com/blog/2011/09/restful.html

浙公网安备 33010602011771号