rest

此为个人学习笔记,内容可能有些混乱,仅供参考。


1、“无状态服务器”约束

REST 的  客户机- 无状态 -服务器”  约束禁止在服务器上保存会话状态。符合这一约束进行设计可以提高系统的可见性、可靠性和可伸缩性。

 

当浏览器浏览访问一个url 资源时,返回的页面即为该 url 资源的 representation ,这个representation 给浏览器一个 state ,当 
浏览器访问下一个url 资源时,浏览器的 state transfer 了。

2 REST  与全堆栈  Web  服务根本不同

·  REST 的 核心抽象是远程资源 而不是远程过程调用。

·  REST 没有发明一个详尽的标准列表,而是 采用现有的 Internet 标准 ,包括 HTTP、XML 和 TCP/IP。

·  REST 没有覆盖每个可能场景,而是覆盖了最常见的问题。

3、 REST 客户使用与浏览器相同的  HTTP  命令访问资源。当  REST  客户访问到资源的表示时,客户转换到一个状态。使用不同的  HTTP  命令, REST  客户可以创建 post 、读取 (get) 、更新 (put) 或删除 (delete) 资源的记录。

REST架构让人们真正理解我们的网络协议 HTTP 本来面貌,对资源的操作包括获取、创建、修改和删除资源的操作正好对应 HTTP 协议提供的 GET POST PUT DELETE 方法,因此 REST HTTP 对一个 URL 资源的操作限制在 GET POST PUT DELETE 这四个之内 。这种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

4、 REST 可以:

·  用 TCP/IP 命名标准命名 Web 上的资源

·  用 HTTP 查询和操纵这些资源

·  使用 基于文本的标准消息格式 (例如 XML 或 HTML)来构造数据

5、 REST的 设计准则

  REST架构是针对Web应用而设计的,其目的是为了 降低开发的复杂性 提高系统的可伸缩性 。REST提出了如下设计准则:

  网络上的所有事物都被抽象为 资源 (resource);

  每个资源对应一个唯一的 资源标识符 (resource identifier);

  通过通用的连接器接口(generic connector interface)对资源进行操作;

  对资源的各种操作不会改变资源标识符;

所有的操作都是 无状态 的(stateless)。

 

HTTP 协议从本质上说是一种无状态的协议,客户端发出的 HTTP 请求之间可以相互隔离,不存在相互的状态依赖。基于 HTTP 的 ROA,以非常自然的方式来实现无状态服务请求处理逻辑。对于分布式的应用而言,任意给定的两个服务请求 Request 1 与 Request 2, 由于它们之间并没有相互之间的状态依赖,就不需要对它们进行相互协作处理,其结果是:Request 1 与 Request 2 可以在任何的服务器上执行,这样的应用很容易在服务器端支持负载平衡 (load-balance)。

REST 的应用可以充分地挖掘 HTTP  协议对缓存支持的能力。

6、 使用REST 架构

REST不仅仅是一种崭新的架构,它带来的更是一种全新的Web开发过程中的思维方式: 通过URL来设计系统结构 。REST是一套简单的设计原则、 一种架构风格(或模式),不是一种具体的标准或架构。

7、与soap对比

典型的基于 SOAP 的 Web 服务以操作为中心,每个操作接受 XML 文档作为输入,提供 XML 文档作为输出。在本质上讲,它们是 RPC 风格的。而在遵循 REST 原则的 ROA 应用中,服务是以资源为中心的,对每个资源的操作都是标准化的 HTTP 方法。

你可能感兴趣的:(REST)