rest架构

一、rest是什么?
 
1、REST是设计风格而不是标准。
2、粗俗的理解就是制定了一套web api的uri的命名方式。
3、REST提出了如下设计准则:
    a. 网络上的所有事物都被抽象为资源(resource);
    b. 每个资源对应一个唯一的资源标识符(resource identifier);
    c. 通过通用的连接器接口(generic connector interface)对资源进行操作;
    d. 对资源的各种操作不会改变资源标识符;
    e. 所有的操作都是无状态的(stateless)。
 
rest架构最为重要的一点是:这是一种新的开发思维方式
REST把服务器端所有的URL都当作是抽象的资源(相当于是面向对象设计中的接口)
 
二、rest有什么优点?

      可以利用缓存Cache来提高相应速度
      通信本身的无状态性可以让不同的服务器处理一系列请求中的不同请求,提高服务器可扩展性

      浏览器即可作为客户端,简化软件需求
      相对于其他叠加在HTTP协议之上的机制,REST的软件依赖性更小
      不需要额外的资源发现机制
      在软件技术演进中长期的兼容性更好
 
三、架构比较
 
1、RPC架构风格将服务器看作是由一些过程组成,客户端调用这些过程来执行特定的任务。SOAP就是RPC风格的一种架构。过程是动词性的(做某件事),因此RPC建模是以动词为中心的。

2、分布式对象架构风格认为服务器是由一些对象和对象上的方法组成,客户端通过调用这些对象上的方法来执行特定的任务。并且客户端调用这些对象上的方法应该就像是调用本地对象上的方法一样,这样开发就可以完全按照统一的面向对象方法来做。但是很可惜,这样的抽象并不是很有效,因为分布式对象与本地对象存在着巨大的本质差别,想要掩盖这些差别很多时候甚至是有害无益的。

3、REST架构风格并没有试图掩盖这些差别,而是将服务器抽象为一组离散资源的集合。资源是一个抽象的概念,而不是代表某个具体的东西。注意:要真正理解REST,就一定要增强自己的抽象思维能力,充分理解到资源是抽象的。如果完全不具有抽象思维的能力,一定要将资源与数据库中的一张表或服务器端的一个文件(HTML、Servlet、JSP、etc.)一一挂起钩来,就无法真正理解REST了。资源是名词性的,因此REST建模是以名词为中心的。

 

posted @ 2015-09-02 14:05  漫步枫  阅读(596)  评论(0编辑  收藏  举报