此为个人学习笔记,内容可能有些混乱,仅供参考。
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 方法。
分享到:
相关推荐
这个压缩包很可能是包含了一个配置好的Spring Boot应用,用于演示如何使用REST接口来操作Flowable的功能。 Flowable REST API提供了丰富的端点,用于创建、读取、更新和删除(CRUD)各种流程相关的实体,如任务、...
### REST Server 在 Delphi XE 中使用 DataSnap 的关键技术点 #### 1. REST 架构简介 - **背景**: REST(Representational State Transfer)是 Web 服务领域的一个重要概念,尤其在过去十年中,随着 Web 2.0 的...
1. 安装Advanced REST Client插件:首先,你需要在Chrome浏览器的Web Store中搜索“Advanced REST Client”并安装它。安装完成后,你可以在浏览器的扩展程序栏找到ARC的图标。 2. 创建新的HTTP请求:打开ARC,点击...
本示例探讨的主题是“REST地图与天地图叠加”,这涉及到两种不同的地图服务技术的融合,即SuperMap iClient的REST地图服务和天地图服务。我们将详细解释这两种技术及其在Flex客户端下的叠加应用。 首先,REST...
在Delphi XE中利用DataSnap构建REST服务器是一项强大的技术,可以帮助开发者创建高效、可扩展的Web服务。本文将深入探讨这一主题,介绍REST(Representational State Transfer)架构原理,以及如何在Delphi环境中...
【标题】"geoserver-rest-python-1.1" 是一个针对Geoserver的REST API接口的Python客户端库,主要用于管理、配置和操作Geoserver的版本1.1。这个库是Geoserver-rest-python-1.0的升级版,修复了已知的错误并进行了...
赠送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 (Representational State Transfer)**:一种软件架构风格,用于描述基于网络的应用程序如何工作。REST的核心理念是通过简单的HTTP...
赠送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(REpresentational State Transfer)是一种混合架构风格,当前互联网的核心架构风格。基于 REST 服务(RESTful Service)的 Web 应用系统设计任务主要包括:识别并设计 ...
赠送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 Server 模块是实现这一目标的关键组件,它提供了基于 RESTful API 的接口,使得应用程序能够轻松地从 KEPWARE 获取或写入数据。本教程将详细介绍如何在 KEPWARE 中配置和使用 REST Server。 首先,确保...
在IT行业中,REST(Representational State Transfer)是一种广泛应用于网络应用程序设计的架构风格,它强调资源的表述状态转移。REST接口通常使用HTTP协议中的方法(GET、POST、PUT、DELETE等)来操作资源,实现轻...
在Kettle中,REST接口提供了一种灵活的方式与外部系统进行通信,例如,发送和接收JSON数据,执行各种操作。本教程将深入探讨如何使用Kettle与RESTful服务进行交互。 首先,我们要理解REST(Representational State ...
本项目“C# 实现Rest服务接口,含实现文档”将详细介绍如何使用C#和ASP.NET框架来构建RESTful服务。 1. **C#语言基础**:C#是Microsoft开发的一种面向对象的编程语言,常用于Windows平台的应用程序开发,尤其在.NET...
JavaScript天地图叠加REST地图服务是将SuperMap iClient 6R for JavaScript库与天地图的REST服务相结合,实现在线地图的动态加载与显示。在Web应用中,这种技术常用于地理信息系统(GIS)的开发,使得用户可以在...
【Asp.net 实现 Rest服务接口】 在现代Web开发中,REST(Representational State Transfer,表述性状态转移)已经成为一种广泛采用的API设计风格。它基于HTTP协议,以简洁、可扩展的方式提供服务,便于客户端与...
**JIRA REST Java Client**是Atlassian官方提供的一款用于与JIRA进行交互的Java库,它使得开发人员能够轻松地通过RESTful API访问和操作JIRA系统。这个库提供了丰富的功能,包括创建、更新、查询问题(issues)、...
REST (Representational State Transfer) 是一种设计网络应用程序的架构风格,其核心原则之一是无状态性。在REST架构中,客户端和服务端之间的交互基于HTTP协议,通过发送HTTP请求并接收HTTP响应来完成。 #### 三、...
REST(Representational State Transfer),即“表征状态转移”,是由Roy Fielding博士在其2000年的博士论文中提出的一种软件架构风格。REST强调基于网络的分布式系统的松耦合设计,并推崇无状态通信机制。在理解...