Restful WebService简单介绍

RESTful Web Services已经渐渐开始流行, 主要是用于解决异构系统之间的通信问题。很多网站和应用提供的API,都是基于RESTful风格的Web Services,比较就有Google,现在就来简单的介绍下它。

一、 RESTful Web Services是什么?

REST(Representation State Transfer)描述了一种设计Web应用的架构风格,它是一组架构约束条件和原则,满足这些约束条件和原则的应用程序或设计就是 RESTful风格的。而符合RESTful风格的Web Services,就是RESTful Web Services。现在来简单说下REST的原则。

REST原则如下

第一:资源由URI来指定

在Web应用中,所有的事物都应该拥有唯一的ID,代表ID的统一概念是URI。URI构成了一个全局命名空间,使用URI表示你的资源,那么久意味着它们获得了一个唯一、全局的ID。

第二:使用HTTP方法

REST 要求开发人员使用 HTTP 方法,并且使用方式与协议定义一致。 这个 REST 设计原则建立了创建、读取、更新和删除(CRUD)操作与 HTTP 方法之间的一对一映射。 其关系如下 :

1)创建资源,应该使用 POST 方法。

2)检索某个资源,应该使用 GET 方法。

3)更改资源状态或对其进行更新,应该使用 PUT 方法。

4)删除某个资源,应该使用 DELETE 方法。

 第三: 资源多重表述

表述由需求决定。表述方式包括XML、JSON、HTML等。即服务器端需要向外部提供多种格式的资源数据,供不同的客户端使用。比如移动应用可以使用XML或JSON和服务器端通信,而浏览器则能够理解HTML。

第四:无状态

对服务器端的请求是无状态的,完整、独立的请求不要求服务器在处理请求时检索任何类型的应用程序上下文或状态。无状态约束使服务器的变化对客户端是不可见的,因为在两次连续的请求中,客户端并不依赖于同一台服务器。一个客户端从某台服务器上收到一份包含链接的文档,当它要做一些处理时,这台服务器宕掉了,可能是硬盘坏掉而被拿去修理,可能是软件需要升级重启——如果这个客户端访问了从这台服务器接收的链接,它不会察觉到后台的服务器已经改变了。

二、 RESTful Web Services与SOAP Web Services的比较

我们通常所说的Web Service都是基于SOAP的Web Service,它也是解决异构系统间通信问题的常用方案,那么,RESTful Web Services相对于SOAP Web Services有什么优势呢?我们为什么要学习RESTful Web Services,使用已经流行很久的SOAP Web Services不就够了吗?

首先,RESTful Web Services接口更易于使用

RESTful Web Services使用标准的 HTTP 方法 (GET/PUT/POST/DELETE) 来抽象所有 Web 系统的服务能力,而SOAP 应用都是通过定义自己个性化的接口方法来抽象 Web 服务。相对来说,RESTful Web Services接口更简单。这种标准化的 HTTP 操作方法,结合其他的标准化技术,如 URI,HTML,XML 等,将会极大提高系统与系统之间整合的互操作能力。尤其在 Web 应用领域,RESTful
Web Services所表达的这种抽象能力更加贴近 Web 本身的工作方式,也更加自然。同时,使用标准 HTTP 方法实现的 RRESTful Web Services也带来了 HTTP 方法本身的一些优势:

1)无状态性

HTTP 协议从本质上说是一种无状态的协议,客户端发出的 HTTP 请求之间可以相互隔离,不存在相互的状态依赖。基于 HTTP 的 ROA,以非常自然的方式来实现无状态服务请求处理逻辑。对于分布式的应用而言,任意给定的两个服务请求 Request 1 与 Request 2,由于它们之间并没有相互之间的状态依赖,就不需要对它们进行相互协作处理,其结果是:Request 1 与 Request 2 可以在任何的服务器上执行,这样的应用很容易在服务器端支持负载平衡
(load-balance)。

2)安全操作与幂指相等特性

HTTP 的 GET、HEAD 请求本质上应该是安全的调用,即:GET、HEAD 调用不会有任何的副作用,不会造成服务器端状态的改变。对于服务器来说,客户端对某一 URI 做 n 次的 GET、HAED 调用,其状态与没有做调用是一样的,不会发生任何的改变。

HTTP 的 PUT、DELTE 调用,具有幂指相等特性 , 即:客户端对某一 URI 做 n 次的 PUT、DELTE 调用,其效果与做一次的调用是一样的。HTTP 的 GET、HEAD 方法也具有幂指相等特性。

HTTP 这些标准方法在原则上保证你的分布式系统具有这些特性,以帮助构建更加健壮的分布式系统。

       其次,RESTful Web Services更容易实现缓存

对于基于网络的分布式应用,网络传输是一个影响应用性能的重要因素。如何使用缓存来节省网络传输带来的开销,这是每一个构建分布式网络应用的开发人员必须考虑的问题。

REST 的应用可以充分地挖掘 HTTP 协议对缓存支持的能力。当客户端第一次发送 HTTP GET 请求给服务器获得内容后,该内容可能被缓存服务器 (Cache Server) 缓存。当下一次客户端请求同样的资源时,缓存可以直接给出响应,而不需要请求远程的服务器获得。而这一切对客户端来说都是透明的。

三、 总结

其实,我们有很多场合可以使用到RESTful Web Services,Web系统间的交互,移动客户端与Web服务器端的通信等。只有更多的实践RESTful,才能更好的理解RESTful Web Services。我仅仅是对RESTful Web Services的一个简单介绍,为以后更深入的了解做好准备。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 17:10:41

Restful WebService简单介绍的相关文章

开发RESTful WebService

RESTful风格的webservice越来越流行了,sun也推出了RESTful WebService的官方规范:JAX-RS,全称:Java API for RESTful WebService.该规范定义了一系列的注解 RESTful简化了web service的设计,它不再需要wsdl,也不再需要soap协议,而是通过最简单的http协议传输数据(包括xml或json).既简化了设计,也减少了网络传输量(因为只传输代表数据的xml或json,没有额外的xml包装) 下面为大家介绍使用cx

在Eclipse中使用Jersey和Tomcat构建RESTful WebService及其调用

在Eclipse中使用Jersey和Tomcat构建RESTful WebService及其调用 RESTful Web 服务简介 REST 在 2000 年由 Roy Fielding 在博士论文中提出,他是 HTTP 规范 1.0 和 1.1 版的首席作者之一. REST 中最重要的概念是资源(resources),使用全球 ID(通常使用 URI)标识.客户端应用程序使用 HTTP 方法(GET/ POST/ PUT/ DELETE)操作资源或资源集.RESTful Web 服务是使用 H

restful webservice简介

最近的工作涉及到与第三方平台的数据交互问题,所以很自然而然的选择了webservice,基于SOAP的webservice是一直在使用的方式,但对方所给的接口文档上都同时提供了两种方式,一种是SOAP的方式,另外一种就是restful风格的webservice,本文简单介绍一下什么是restful风格的webservice以及它与基于SOAP的webservice的优势,下篇文章通过一个小例子介绍如何发布restful风格的webservice. REST的全称是Representation S

SOAP webserivce 和 RESTful webservice 对比及区别

简单对象访问协议(Simple Object Access Protocol,SOAP)是一种基于 XML 的协议,可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME),基于"通用"传输协议是 SOAP的一个优点.它还支持从消息系统到远程过程调用(Remote Procedure Call,RPC)等大量的应用程序.SOAP提供了一系列的标准,如WSRM(WS-Reliable Messaging)形

RESTful WebService入门

RESTful WebService入门 RESTful WebService是比基于SOAP消息的WebService简单的多的一种轻量级Web服务,RESTful WebService是没有状态的,发布和调用都非常的轻松容易. 下面写一个最简单的Hello World例子,以便对RESTful WebService有个感性认识.因为非常专业理论化的描述RESTful WebService是一件理解起来很痛苦的事情.看看例子就知道个大概了,再看理论就容易理解多了. /** * RESTful

RESTful WebService入门(转)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lavasoft.blog.51cto.com/62575/229206 RESTful WebService是比基于SOAP消息的WebService简单的一种轻量级Web服务,RESTful WebService是没有状态的,发布和调用都是非常的轻松容易. 以下是一个最简单的Hello World例子,以便对RESTful WebService有个感性认识.因为非常专业理论化

CORBA的简单介绍及HelloWorld

CORBA概述 CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程 序体系规范.或者说 CORBA体系结构是OMG为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案. OMG:Object Management Group,对象管理组织.是一个国际化的.开放成员的.非盈利性的计算机行业标准协会,该协会成立于1989年,其职责是为应用开发提供一个公共框架,制订

SOAP Webservice和RESTful Webservice

REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性.REST提出设计概念和准则为: 1.网络上的所有事物都可以被抽象为资源(resource)2.每一个资源都有唯一的资源标识(resource identifier),对资源的操作不会改变这些标识3.所有的操作都是无状态的 REST简化开发,其架构遵循CRUD原则,该原则告诉我们对于资源(包括网络资源)只需要四种行为:创建,获取,更新和删除就可以完成相关的操作和处理.您可以通过

RESTful Webservice (一) 概念

Representational State Transfer(表述性状态转移) RSET是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性. REST的设计概念和准则为: 网络上的所有事物都可以被抽象为资源 每一个资源都有唯一的字元标识,对资源的操作不会改变这些标识 所有的操作都是无状态的 REST架构风格最重要的架构约束: 1. 客户-服务器 通信只能由客户端单方面发起,表现为请求-响应的形式 2. 无状态 通信的会话状态(ses