返回介绍

什么是 REST

发布于 2025-04-20 18:52:15 字数 1144 浏览 0 评论 0 收藏

REST 是 RoyThomas Fielding 在他 2000 年的博士论文(http://bit.ly/28RW8yv )中提出的, Fielding 将他对互联网软件的架构原则,定名为 REST,即 Representational State Transfer(常见的翻译是“表现层状态转化”)的缩写。

REST 其实省略了主语:资源,表现层实际上指的是资源的表现层。资源是指 Web 上一切可识别、可命名、可找到并被处理的实体。比如 HTML 页面、音频文件、图片等。用一个 URI (统一资源定位符)指向资源,使用 HTTP 请求方法操作资源。URI 可进一步划分为统一资源名(URN,代表资源的名字) 和统一资源定位符(URL,代表资源的地址),其中 URL 可以定位 HTTP 网址、FTP 服务器和文件路径等,符合绝大多数场景,所以一般都可以用 URL 替代 URI。

REST 架构风格最重要的架构约束有如下 5 个。

1.客户端-服务器端。这种 Client/Server 的架构形式提供了基本的分布式,客户端发起请求,服务端决定响应或者拒绝请求,如果出错则返回错误信息,由客户端处理异常。

2.无状态。通信的会话状态应该全部由客户端负责维护,也就是请求中包含了全部必要的信息。如果使用基于服务器端的会话,要么需要保证指定会话会使用同一个服务器响应所有请求,要么得创建一个可供所有服务器访问的公用的会话存储区,对每个请求都额外访问这个集中式的数据存储区获得会话状态。

3.缓存。无状态就表示可能出现重复的请求,事实上这些请求只需要第一次真正的执行,其余的请求都可以享用这个已完成的结果而直接响应,所以缓存可以抵消一部分无状态带来的影响。

4.统一接口。统一接口意味着每个 REST 应用都共享一种通用架构,那些熟悉这种架构的人一眼就能看明白接口的意义,并会继续延承下去。

5.分层系统。将系统划分为几个部分,每个部分负责一部分相对单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统。通常可以划分为如下三层。

  • 应用层:负责返回 JSON 数据和其他业务逻辑。
  • 服务层:为应用层提供服务支持,如全站的账号系统、以及本书实现的文件托管服务等。
  • 数据访问层:提供数据访问和存储的服务,如数据库、缓存系统、文件系统、搜索引擎等。

REST 就是这一系列设计约束的集合,如果一个架构符合 REST 原则,就称它为 RESTful 架构。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。