`
xiejuntao
  • 浏览: 8138 次
  • 性别: 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 方法。

分享到:
评论

相关推荐

    flowable-boot-rest_rest_flowableapi_flowableswagger_flowable_flo

    这个压缩包很可能是包含了一个配置好的Spring Boot应用,用于演示如何使用REST接口来操作Flowable的功能。 Flowable REST API提供了丰富的端点,用于创建、读取、更新和删除(CRUD)各种流程相关的实体,如任务、...

    REST Server in Delphi XE Using DataSnap中文版

    ### REST Server 在 Delphi XE 中使用 DataSnap 的关键技术点 #### 1. REST 架构简介 - **背景**: REST(Representational State Transfer)是 Web 服务领域的一个重要概念,尤其在过去十年中,随着 Web 2.0 的...

    谷歌浏览器插件+AdvancedRestClient+Http Rest API测试调试

    1. 安装Advanced REST Client插件:首先,你需要在Chrome浏览器的Web Store中搜索“Advanced REST Client”并安装它。安装完成后,你可以在浏览器的扩展程序栏找到ARC的图标。 2. 创建新的HTTP请求:打开ARC,点击...

    REST地图与天地图叠加

    本示例探讨的主题是“REST地图与天地图叠加”,这涉及到两种不同的地图服务技术的融合,即SuperMap iClient的REST地图服务和天地图服务。我们将详细解释这两种技术及其在Flex客户端下的叠加应用。 首先,REST...

    Rest Severs in Delphi XE Using DataSnap

    在Delphi XE中利用DataSnap构建REST服务器是一项强大的技术,可以帮助开发者创建高效、可扩展的Web服务。本文将深入探讨这一主题,介绍REST(Representational State Transfer)架构原理,以及如何在Delphi环境中...

    geoserver-rest-python-1.1

    【标题】"geoserver-rest-python-1.1" 是一个针对Geoserver的REST API接口的Python客户端库,主要用于管理、配置和操作Geoserver的版本1.1。这个库是Geoserver-rest-python-1.0的升级版,修复了已知的错误并进行了...

    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;...

    REST实战(REST in Practice)

    ### REST实战(REST in Practice)知识点总结 #### 一、REST简介与背景 - **REST (Representational State Transfer)**:一种软件架构风格,用于描述基于网络的应用程序如何工作。REST的核心理念是通过简单的HTTP...

    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服务构建的web应用的优势和不足

    REST 服务构建的 Web 应用优势和不足 REST(REpresentational State Transfer)是一种混合架构风格,当前互联网的核心架构风格。基于 REST 服务(RESTful Service)的 Web 应用系统设计任务主要包括:识别并设计 ...

    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;...

    Kepware IOT gateway使用教程 - REST Sever

    其中,REST Server 模块是实现这一目标的关键组件,它提供了基于 RESTful API 的接口,使得应用程序能够轻松地从 KEPWARE 获取或写入数据。本教程将详细介绍如何在 KEPWARE 中配置和使用 REST Server。 首先,确保...

    动态发布rest接口及服务调用

    在IT行业中,REST(Representational State Transfer)是一种广泛应用于网络应用程序设计的架构风格,它强调资源的表述状态转移。REST接口通常使用HTTP协议中的方法(GET、POST、PUT、DELETE等)来操作资源,实现轻...

    kettle rest 接口 请求实例

    在Kettle中,REST接口提供了一种灵活的方式与外部系统进行通信,例如,发送和接收JSON数据,执行各种操作。本教程将深入探讨如何使用Kettle与RESTful服务进行交互。 首先,我们要理解REST(Representational State ...

    C# 实现Rest服务接口,含实现文档

    本项目“C# 实现Rest服务接口,含实现文档”将详细介绍如何使用C#和ASP.NET框架来构建RESTful服务。 1. **C#语言基础**:C#是Microsoft开发的一种面向对象的编程语言,常用于Windows平台的应用程序开发,尤其在.NET...

    JavaScript天地图叠加REST地图服务

    JavaScript天地图叠加REST地图服务是将SuperMap iClient 6R for JavaScript库与天地图的REST服务相结合,实现在线地图的动态加载与显示。在Web应用中,这种技术常用于地理信息系统(GIS)的开发,使得用户可以在...

    Asp.net 实现 Rest服务接口

    【Asp.net 实现 Rest服务接口】 在现代Web开发中,REST(Representational State Transfer,表述性状态转移)已经成为一种广泛采用的API设计风格。它基于HTTP协议,以简洁、可扩展的方式提供服务,便于客户端与...

    JIRA REST Java Client

    **JIRA REST Java Client**是Atlassian官方提供的一款用于与JIRA进行交互的Java库,它使得开发人员能够轻松地通过RESTful API访问和操作JIRA系统。这个库提供了丰富的功能,包括创建、更新、查询问题(issues)、...

    Java 调用Http Rest接口 例子说明

    REST (Representational State Transfer) 是一种设计网络应用程序的架构风格,其核心原则之一是无状态性。在REST架构中,客户端和服务端之间的交互基于HTTP协议,通过发送HTTP请求并接收HTTP响应来完成。 #### 三、...

    白话REST-识别真假REST

    REST(Representational State Transfer),即“表征状态转移”,是由Roy Fielding博士在其2000年的博士论文中提出的一种软件架构风格。REST强调基于网络的分布式系统的松耦合设计,并推崇无状态通信机制。在理解...

Global site tag (gtag.js) - Google Analytics