rest软件架构

WCF实现REST服务

守給你的承諾、 提交于 2020-01-02 02:12:03
REST 表述性状态转移(Representational State Transfer,REST),不是一种标准,而是一种软件架构风格。 基于REST的服务与基于SOAP的服务相比,性能、效率和易用性上都更高,而SOAP协议非常的复杂和不透明。REST受到越来越多的Web服务供应商欢迎。 REST的主要原则是: 1.网络上的所有事物都可被抽象为资源; 2.每个资源都有一个唯一的资源标识符URI; 3.使用标准方法操作资源; 4.所有的操作都是无状态的; 5.通过缓存来提高性能。 REST是基于Http协议的,任何对资源的操作行为都是通过Http协议来实现。Http把对一个资源的操作限制在4个方法以内:GET、POST、PUT和DELETE,这正是对资源CRUD操作的实现。 REST的资源表述形式可以是XML、HTML、JSON,或者其他任意的形式,这取决于服务提供商和消费服务的用户。 但是REST 不是万能的。操作无状态也会带来巨大的安全问题,如何授权和验证用户?如果要求每次请求都包含完整的身份和验证信息,又如何避免信息泄漏?复杂的功能挑战架构的易用性,这就需要在性能与功能间权衡,究竟该用 REST还是SOAP。 WebHttpBinding WebHttpBinding允许开发人员通过 HTTP请求(这些请求使用“Plain old XML”(POX) 样式消息,而不是使用基于

REST详细介绍

随声附和 提交于 2020-01-02 01:47:35
Representational State Transfer ( REST ):   是一种软件架构风格,它定义了一组用于创建Web服务的约束。符合REST架构风格的Web服务(称为RESTfulWeb服务(RWS))提供Internet上计算机系统之间的互操作性。RESTful Web服务允许请求系统使用统一且预定义的无状态操作集来访问和操作Web资源的文本表示。其他类型的Web服务(如SOAP Web服务)会公开自己的任意操作集。   Web资源”首先在万维网上定义为由其URL标识的文档或文件。然而,今天它们有一个更通用和抽象的定义,包含可以在Web上以任何方式识别,命名,寻址或处理的每个事物或实体。在RESTful Web服务,对资源的的请求URI将引发一个响应有效载荷在格式化的HTML,XML,JSON或其它格式。响应可以确认已对存储的资源进行了一些更改,并且响应可以提供超文本链接到其他相关资源或资源集合。当使用HTTP时,最常见的是,可用的操作(HTTP方法)是GET,HEAD,POST,PUT,PATCH,DELETE,CONNECT,OPTIONS和TRACE。   通过使用无状态协议和标准操作,RESTful系统旨在通过重用可以管理和更新的组件来实现快速性能,可靠性和增长能力,即使在运行时也不会影响整个系统。 RESTful: 由持久性标识符标识的资源

spring restful

余生颓废 提交于 2020-01-02 01:44:32
一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 中文名 RESTful 外文名 Representational State Transfer 简 称 REST 创始人 Roy Fielding 目录 1 概述 ▪ 原则条件 ▪ 分层系统 2 实现 概述 编辑 REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,Roy Fielding是 HTTP 规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。 [1] 原则条件 REST 指的是一组架构 约束条件 和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。 Web 应用程序最重要的 REST 原则是

SOAP与restful webservice

南楼画角 提交于 2020-01-02 01:42:47
SOAP   什么是SOAP,我想不用多说,google一把满眼都是。其实SOAP最早是针对RPC的一种解决方案,简单对象访问协议,很轻量,同时作为应用协议可以基于多种传输协议来传递消息(Http,SMTP等)。但是随着SOAP作为WebService的广泛应用,不断地增加附加的内容,使得现在开发人员觉得SOAP很重,使用门槛很高。在SOAP后续的发展过程中,WS-*一系列协议的制定,增加了SOAP的成熟度,也给SOAP增加了负担。   REST   REST其实并不是什么协议也不是什么标准,而是将Http协议的设计初衷作了诠释,在Http协议被广泛利用的今天,越来越多的是将其作为传输协议,而非原先设计者所考虑的应用协议。SOAP类型的WebService就是最好的例子,SOAP消息完全就是将Http协议作为消息承载,以至于对于Http协议中的各种参数(例如编码,错误码等)都置之不顾。其实,最轻量级的应用协议就是Http协议。Http协议所抽象的get,post,put,delete就好比数据库中最基本的增删改查,而互联网上的各种资源就好比数据库中的记录,对于各种资源的操作最后总是能抽象成为这四种基本操作,在定义了定位资源的规则以后,对于资源的操作通过标准的Http协议就可以实现,开发者也会受益于这种轻量级的协议。   REST专门针对网络应用设计和开发方式,以降低开发的复杂性

Web开发之RSET API

扶醉桌前 提交于 2020-01-02 01:35:08
REST介绍   如果要说什么是REST的话,那最好先从Web(万维网)说起。   什么是Web呢?读者可以查看维基百科的词条( http://zh.wikipedia.org/zh-cn/Web ),具体的我就不多说了。总之,Web是我们在互联网上最常用的服务,甚至在某些人的心中,互联网就是Web。当然,Web只是互联网的一部分而已,只是大家用的最多而已,我们访问的所有网站都是基于Web。   那么,Web和REST之间究竟有什么关系呢?我们接下来将聊聊组成Web的几大基础技术, URI (统一资源标识符,用来标识资源)、 HTTP (超文本传输/转移协议,用来操作资源)、 Hypertext (超文本,用来描述资源的内容与状态,我们可以用HTML、XML、JSON或者自定义格式的文本来描述任何一个资源)。   那我们再来看看什么是REST呢?其实REST并不是一种新兴的技术语言,也不是什么新的技术框架。准确来说说REST只是一种概念、风格或者约束,是回归HTTP本身的建议。   REST是由Roy Thomas Fieding在他的博士论文《Architectural Styles and the Design of Network-based Software Architectures》(《架构风格与基于网络的软件架构设计》)中提出的一种架构思想。Roy

REST服务开发实战

可紊 提交于 2020-01-02 01:34:39
   转自: http://kb.cnblogs.com/page/91827/ REST介绍   如果要说什么是REST的话,那最好先从Web(万维网)说起。   什么是Web呢?读者可以查看维基百科的词条( http://zh.wikipedia.org/zh-cn/Web ),具体的我就不多说了。总之,Web是我们在互联网上最常用的服务,甚至在某些人的心中,互联网就是Web。当然,Web只是互联网的一部分而已,只是大家用的最多而已,我们访问的所有网站都是基于Web。   那么,Web和REST之间究竟有什么关系呢?我们接下来将聊聊组成Web的几大基础技术, URI (统一资源标识符,用来标识资源)、 HTTP (超文本传输/转移协议,用来操作资源)、 Hypertext (超文本,用来描述资源的内容与状态,我们可以用HTML、XML、JSON或者自定义格式的文本来描述任何一个资源)。   那我们再来看看什么是REST呢?其实REST并不是一种新兴的技术语言,也不是什么新的技术框架。准确来说说REST只是一种概念、风格或者约束,是回归HTTP本身的建议。   REST是由Roy Thomas Fieding在他的博士论文《Architectural Styles and the Design of Network-based Software Architectures》(

REST In WCF4.0

雨燕双飞 提交于 2020-01-02 01:34:30
REST软件架构是由Roy Thomas Fielding博士2000年在他的论文《Architectural Styles and the Design of Network- based Software Architectures》首次提出的。他提出的理论对后来的Web技术的发展产生了巨大的影响,他是许多重要Web架构标准的设计者,这些标准就是HTTP、URI等。 1.1) Rest的英文全称是“Representational State Transfer”。中文翻译为“表述性状态转移”。REST本身只是为分布式超媒体系统设计的一种架构风格,而不是标准。 1.2)那么如何理解“Representational State Transfer”这句话呢?下面我们来解释一下: Representational :中文直译:代表的,表像的。如果把WEB 服务器端中所有的东西(数据)都看作是资源(Resource),那么呈现在用户面前(客户端)的就是资源的表像(Representation)。每一个资源都有自己的唯一标识(URI)。 State :中文直译:状态。首先这个状态是客户端的状态,而不是服务器端的状态(在REST 中,服务器端应该是无状态的)。那么,把State和Representation联系在一起(Representational State),可以理解成:每一个资源

什么是REST?

↘锁芯ラ 提交于 2020-01-02 01:33:43
REST 表象化状态转变(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。 目前在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。例如,Amazon.com提供接近REST风格的Web服务进行图书查找;雅虎提供的Web服务也是REST风格的。 宗旨 REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表形。获得这些表形致使这些应用程序转变了其状态。随着不断获取资源的表形,客户端应用不断地在转变着其状态,所谓表形化的状态转变(Representational State Transfer)。 这一观点不是凭空臆造的,而是通过观察当前Web互联网的运作方式而抽象出来的。Roy Fielding 认为, “ 设计良好的网络应用表现为一系列的网页,这些网页可以看作的虚拟的状态机,用户选择这些链接导致下一网页传输到用户端展现给使用的人,而这正代表了状态的转变。 ” 要点及标准 需要注意的是,REST是一种设计风格而不是一个标准。REST通常基于使用HTTP,URI

RESTful架构3--开发实战

一曲冷凌霜 提交于 2019-12-31 01:39:10
转自: REST服务开发实战   如果要说什么是REST的话,那最好先从Web(万维网)说起。   什么是Web呢?读者可以查看维基百科的词条( http://zh.wikipedia.org/zh-cn/Web ),具体的我就不多说了。总之,Web是我们在互联网上最常用的服务,甚至在某些人的心中,互联网就是Web。当然,Web只是互联网的一部分而已,只是大家用的最多而已,我们访问的所有网站都是基于Web。   那么,Web和REST之间究竟有什么关系呢?我们接下来将聊聊组成Web的几大基础技术, URI (统一资源标识符,用来标识资源)、 HTTP (超文本传输/转移协议,用来操作资源)、 Hypertext (超文本,用来描述资源的内容与状态,我们可以用HTML、XML、JSON或者自定义格式的文本来描述任何一个资源)。   那我们再来看看什么是REST呢?其实REST并不是一种新兴的技术语言,也不是什么新的技术框架。准确来说说REST只是一种概念、风格或者约束,是回归HTTP本身的建议。   REST是由Roy Thomas Fieding在他的博士论文《Architectural Styles and the Design of Network-based Software Architectures》(《架构风格与基于网络的软件架构设计》)中提出的一种架构思想。Roy

WCF实现REST服务

此生再无相见时 提交于 2019-12-30 22:07:46
REST 表述性状态转移( Representational State Transfer,REST ),不是一种标准,而是一种软件架构风格。 基于 REST 的服务与基于 SOAP 的服务相比,性能、效率和易用性上都更高,而 SOAP 协议非常的复杂和不透明。 REST 受到越来越多的 Web 服务供应商欢迎。目前大部分供应商,如 yahoo 、 google 、 Amazon 等都提供 REST 风格的服务。 REST 的主要原则是: 1.网络上的所有事物都可被抽象为资源; 2.每个资源都有一个唯一的资源标识符 URI; 3.使用标准方法操作资源; 4.所有的操作都是无状态的; 5.通过缓存来提高性能。 REST 是基于 Http 协议的,任何对资源的操作行为都是通过 Http 协议来实现。 Http 把对一个资源的操作限制在 4 个方法以内: GET、POST、PUT 和 DELETE ,这正是对资源 CRUD 操作的实现。 REST 的资源表述形式可以是 XML 、 HTML 、 JSON ,或者其他任意的形式,这取决于服务提供商和消费服务的用户。 但是 REST 不是万能的。操作无状态也会带来巨大的安全问题,如何授权和验证用户?如果要求每次请求都包含完整的身份和验证信息,又如何避免信息泄漏?复杂的功能挑战架构的易用性,这就需要在性能与功能间权衡