REST及RESTful原则,何物也?

48 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情 记录一下RESTful原则,加深理解


一、REST是什么?

REST是REpresentational State Transfer表述性状态转移的首字母缩写。它是分布式超媒体系统的架构风格,最初由Roy Fielding在2000年的着名论文中提出。

1、RESTful是什么?

REST-ful,其中ful代表形容词,如helpful,powerful。这类形容词意为"full of,having the quality of"。多加在名词之后表示“充满…的、易于…、可…的、富有…的、具有…的”的意思,是最常用的形容词后缀,反义词后缀是-less。

所以!RESTful 就代表满足REST原则的。

与任何其他架构风格一样,REST也有自己的6个引导约束,如果接口需要被称为RESTful,则必须满足一些原则。这些原则如下。

2、REST的指导原则

1)客户端 - 服务器 - 通过将用户接口问题与数据存储问题分开,我们通过简化服务器组件来提高跨多个平台的用户接口的可移植性并提高可伸缩性。

2)无状态 - 从客户端到服务器的每个请求都必须包含理解请求所需的所有信息,并且不能利用服务器上任何存储的上下文。因此,会话状态完全保留在客户端上。

3)可缓存 - 缓存约束要求将对请求的响应中的数据隐式或显式标记为可缓存或不可缓存。如果响应是可缓存的,则客户端缓存有权重用该响应数据以用于以后的等效请求。

4)统一接口 - 通过将通用性的软件工程原理应用于组件接口,简化了整个系统架构,提高了交互的可见性。为了获得统一的接口,需要多个架构约束来指导组件的行为。REST由四个接口约束定义:资源识别; 通过陈述来处理资源; 自我描述性的信息; 并且,超媒体作为应用程序状态的引擎。

5)分层系统 - 分层系统风格允许通过约束组件行为来使体系结构由分层层组成,这样每个组件都不能“看到”超出与它们交互的直接层。

6)按需编码(可选) - REST允许通过以小程序或脚本的形式下载和执行代码来扩展客户端功能。这通过减少预先实现所需的功能数量来简化客户端。

二、总结

本文简单介绍了REST和RESTful的含义,有需要再补充一些细节上的东西。

参考:
Restful API 中文网
Rest简介,博客园
Rest,知乎