`
xiejuntao
  • 浏览: 7841 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

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 方法。

分享到:
评论

相关推荐

    elasticsearch-rest-high-level-client-6.8.3-API文档-中英对照版.zip

    赠送jar包:elasticsearch-rest-high-level-client-6.8.3.jar; 赠送原API文档:elasticsearch-rest-high-level-client-6.8.3-javadoc.jar; 赠送源代码:elasticsearch-rest-high-level-client-6.8.3-sources.jar;...

    elasticsearch-rest-high-level-client-6.8.3-API文档-中文版.zip

    赠送jar包:elasticsearch-rest-high-level-client-6.8.3.jar; 赠送原API文档:elasticsearch-rest-high-level-client-6.8.3-javadoc.jar; 赠送源代码:elasticsearch-rest-high-level-client-6.8.3-sources.jar;...

    elasticsearch-rest-client-6.8.3-API文档-中文版.zip

    赠送jar包:elasticsearch-rest-client-6.8.3.jar; 赠送原API文档:elasticsearch-rest-client-6.8.3-javadoc.jar; 赠送源代码:elasticsearch-rest-client-6.8.3-sources.jar; 赠送Maven依赖信息文件:elastic...

    REST实战(REST in Practice)

    REST实战(REST in Practice)。英文清晰PDF版。三位soa专家对于rest进行了讲求实际的解释,并且通过将web的指导原理应用到普通的企业计算问题中,向你展示了如何开发简单的、优雅的分布式超媒体系统。你将会学习到很...

    elasticsearch-rest-client-6.3.0-API文档-中英对照版.zip

    赠送jar包:elasticsearch-rest-client-6.3.0.jar; 赠送原API文档:elasticsearch-rest-client-6.3.0-javadoc.jar; 赠送源代码:elasticsearch-rest-client-6.3.0-sources.jar; 赠送Maven依赖信息文件:elastic...

    nodejs+websock+rest+rest调用

    基于nodejs的websocket平台,该平台包括异步的数据库调用,异步的rest api访问,以及能够提供rest api的服务。该平台能实现基于ws的聊天室,可以将聊天的信息调用rest api存储到数据库,可以通过网页访问该平台提供...

    java rest api入门实例

    REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,...

    Learning WordPress REST API

    Chapter 1, Getting Started with REST API, gives you an overview of what the REST API is, how it functions, and all that it is capable of doing. You will also find information about other platforms if ...

    rest风格webservice框架

    它可用于实现任何种类的REST式系统,而不仅仅是REST式Web服务。 Restlet项目受到Servlet API、JSP(Java Server Pages)、HttpURLConnection及Struts等Web开发技术的影响。该项目的主要目标是:在提供同等功能的同时...

    REST服务示例入门

    2. 由于【1】的改动,使得只有以/rest开头的URL才能映射到某资源,使用rest服务时,必须要加上/rest。 3. 由于【1】的改动,RestComponent类注册application时将资源字符串加上了/rest。 4. 由于【1】的改动和本人...

    REST API.md

    REST是设计分布式网络服务或API时遵循的架构原则以及设计风格, 前后端分离最佳实践的开发标准或规范。本文为资料收藏的.md笔记,选取比较重要的资料,收集了以下内容: 重要概念介绍,如前述的第2-第4个关键词。 ...

    SOA与REST 用REST构建企业级SOA解决方案

    SOA与REST是当前两种流行的技术架构风格。然而,二者却站在不同的层次看架构,SOA的角度偏向于战略;而REST的角度则偏向于战术。SOA给出了一组架构原则实现其战略目标,而REST则通过一系列约束实现其战术目标。  ...

    REST Client 测试工具

    很多REST Client是不支持自动化测试RESTful API,也不支持自动生成API文档. 之前习惯用一款名字为 WisdomTool REST Client,支持自动化测试RESTful API,输出精美的测试报告,并且自动生成精美的RESTful API文档。 ...

    百度语音合成REST API POST JAVA 保存MP3 格式文件

    本资源包含网页和JAVA代码,分别演示基于百度语音合成REST API对接的POST方式提交接口数据,及其返回格式。网页格式直接返回语音,JAVA程序将POST调用返回的二进制数据流以字节流的方式存储在本地.mp3文件中。鉴于...

    REST_cn 中文版

    然后我介绍了表述性状态转移(Representational State Transfer,REST)的架构风格,并且描述了如何使用REST来指导现代Web架构的设计和开发。 REST强调组件交互的可伸缩性、接口的通用性、组件的独立部署、以及用来...

    Activiti-rest所有接口描述

    我们打开下载的Activiti5.18.0.zip包,在...我们把activiti-rest.war也部署到一个单独的tomcat中,修改WEB-INF/classes/log4j.properties文件,向其中加入以下内容,并将log4j.rootLogger=INFO, CA 后面添加一个“,D ”

    用WCFWebAPI在MVC3.0下实现REST

    最初开始接触web service的时候,所有的材料上来就是一大堆的名词,SOAP, WSDL,看得头都要大了,后来提出来的REST就容易理解得多,虽然目前SOAP在企业级的web service中还有一席之地,但是在公共的Internet上,不是...

    activiti-common-rest-5.21.0-API文档-中英对照版.zip

    赠送jar包:activiti-common-rest-5.21.0.jar; 赠送原API文档:activiti-common-rest-5.21.0-javadoc.jar; 赠送源代码:activiti-common-rest-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-common-rest-...

    Android代码-RestHttp

    RestHttp网络库 --- 基于HttpURLConnection > - RestHttp提供了三级缓存(服务器缓存,内存缓存,硬盘缓存),通过动态代理的方式实现了面向接口调用API。 > - 封装了HttpURLConnection,简单易用的API设计。 > - ...

Global site tag (gtag.js) - Google Analytics