RESTful架构风格

来源:互联网 发布:mysql offset查询优化 编辑:程序博客网 时间:2024/04/27 06:00
   快过年了,这两天晚上看了下Roy Thomas Fielding博士的REST论文中文译版,感觉挺不错的,摘取部分作笔记记录下,论文下载地址:http://download.csdn.net/detail/bbirdsky/6884809。

      这篇论文定义了一个框架,致力于通过架构风格来理解软件架构,并且展示如何使用风格来指导基于网络的应用的架构设计。REST即表述性状态转移(Representational State Transfer,REST)的架构风格,REST强调组件交互的可伸缩性、接口的通用性、组件的独立性,用于减少交互延迟、增强安全性。

      REST组件通过以下方式在一个资源上执行动作:使用一个表述来捕获资源的当前的或预期的状态、在组件之间传递该表述。一个表述是一个字节序列,以及描述这些字节的表述元数据。表述的其他常用但不够精确的名称包括:文档、文件、HTTP消息实体、实例或变量。

REST特定约束
1、空风格:空风格描述了一个组件之间没有明显边界的系统。这就是描述REST的起点。
2、客户-服务器:客户-服务器约束背后的原则是分离关注点。通过分离用户接口和数据存储这两个关注点,我们改善了用户接口跨多个平台的可移植性;同时通过简化服务器组件,改善了系统的可伸缩性。
3、无状态:通信必须在本质上是无状态的,改善了可见性、可靠性、可伸缩性;
4、缓存:改善了网络效率减少一系列交互的平均延迟时间,来提高效率、可伸缩性和用户可觉察的性能,缺点:降低可靠性;
5、统一接口:REST架构风格区别于其他基于网络的架构风格的核心特征是,它强调组件之间要有一个统一的接口。改善独立的可进化性,降低效率。
6、分层系统:增加了数据处理的开销和延迟,因此降低了用户可觉察的性能。
7、按需代码:一个客户端组件知道如何访问一组资源,但不知道如何处理它们。

0 0