`
fjg0427
  • 浏览: 41993 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

rest webservice与soap webservice区别

 
阅读更多
从基本原理层次上说,REST 样式和 SOAP 样式 Web Service的区别取决于应用程序是面向资源的还是面向活动的。例如,在传统的WebService中,一个获得天气预报的webservice会暴露一个WebMethod:string GetCityWether(string city)。而RESTful WebService暴露的不是方法,而是对象(资源),通过Http GET, PUT, POST 或者 DELETE来对请求的资源进行操作。在 REST 的定义中,一个 Web Service总是使用固定的 URI 向外部世界呈现(或者说暴露)一个资源。可以说这是一种全新的思维模式:使用唯一资源定位地址 URI,加上 HTTP 请求方法从而达到对一个发布于互联网资源的唯一描述和操作。
所以我理解为rest架构定义的webservice实际上定义了一个借口的规范。
  REST其实并不是什么协议也不是什么标准,而是将Http协议的设计初衷作了诠释,在Http协议被广泛利用的今天,越来越多的是将其作为传输协议,而非原先设计者所考虑的应用协议。
REST的思想归结以下有如下几个关键点:

1.面向资源的接口设计

所有的接口设计都是针对资源来设计的,也就很类似于我们的面向对象和面向过程的设计区别,只不过现在将网络上的操作实体都作为资源来看待,同时URI的设计也是体现了对于资源的定位设计。后面会提到有一些网站的API设计说是REST设计,其实是RPC-REST的混合体,并非是REST的思想。

       2.抽象操作为基础的CRUD

       这点很简单,Http中的get,put,post,delete分别对应了read,update,create,delete四种操作,如果仅仅是作为对于资源的操作,抽象成为这四种已经足够了,但是对于现在的一些复杂的业务服务接口设计,可能这样的抽象未必能够满足。其实这也在后面的几个网站的API设计中暴露了这样的问题,如果要完全按照REST的思想来设计,那么适用的环境将会有限制,而非放之四海皆准的。     

       3.Http是应用协议而非传输协议

       这点在后面各大网站的API分析中有很明显的体现,其实有些网站已经走到了SOAP的老路上,说是REST的理念设计,其实是作了一套私有的SOAP协议,因此称之为REST风格的自定义SOAP协议。

4.无状态,自包含

这点其实不仅仅是对于REST来说的,作为接口设计都需要能够做到这点,也是作为可扩展和高效性的最基本的保证,就算是使用SOAP的WebService也是一样。

分享到:
评论

相关推荐

    REST WebService与SOAP WebService的比较.docx

    **REST (Representational State Transfer) WebService 和 SOAP (Simple Object Access Protocol) WebService 是两种不同的 Web Service 技术,它们在 SOA(Service-Oriented Architecture,面向服务架构)领域中...

    SOAP vs REST WebService

    SOAP and REST WebService 的比较分析,SOAP and REST WebService 的比较分析

    SOAP webserivce 和 RESTful webservice 对比及区别

    SOAP Web服务和RESTful Web服务是两种常见的Web服务交互方式,它们在设计理念、协议复杂度、数据格式和操作方式等方面存在显著的区别。 首先,SOAP(简单对象访问协议)是一种基于XML的协议,它允许不同系统之间的...

    Soap WebService 调试工具

    SOAPUI是一款功能强大的开源工具,专为SOAP和REST Web服务测试设计。它提供了直观的界面,使得开发者能够轻松地创建、发送、接收和分析SOAP请求。SoapUI-x64-5.6.1.exe是该软件的64位版本安装程序,适用于Windows...

    rest soap cxf webservice maven springmvc

    与REST相比,SOAP提供了更复杂的安全、事务和编排功能,但其复杂的协议和较大的开销使其在轻量级场景下不如REST受欢迎。 Apache CXF是一个全面的服务开发框架,支持REST和SOAP两种Web服务。CXF允许开发者使用Java...

    面向服务的架构SOA分为2种 SOAP即Webservice和REST

    与SOAP相比,REST(Representational State Transfer)是一种更为轻量级、灵活的架构风格,适用于互联网环境。REST强调资源的概念,每个资源都有一个唯一的URI(Uniform Resource Identifier)。通过HTTP方法(如GET...

    Soap方式调用WebService

    2. **WebService与SOAP** WebService是一种基于开放标准的接口,允许不同的系统间进行交互。SOAP是实现WebService通信的最常见方式,它定义了一种标准化的消息传递机制,使得服务消费者和服务提供者可以互不关心...

    基于 cxf 2.7.5 开发的 webservice [soap restful]

    【标题】基于CXF 2.7.5开发的WebService:SOAP与RESTful详解 【描述】本项目是使用Apache CXF 2.7.5版本实现的WebService服务,包括了SOAP和RESTful两种常见的Web服务接口。Apache CXF是一个开源的Java框架,它为...

    在同一个系统里用cxf 实现SOAP 协议和RESTful风格 两种类型的webservice接口

    在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,其中两种主要的接口类型是SOAP(Simple Object Access Protocol)和RESTful(Representational State Transfer)。本篇将详细讲解如何使用Apache CXF框架...

    RESTful webservice 和 SOAP webserivce 对比及区别

    RESTfulWebService和SOAPWebService对比及区别 RESTfulWebService和SOAPWebService都是Web服务架构模式,但它们在架构风格、接口定义、通信协议和实现技术等方面存在著明显的差异。 架构风格 RESTfulWebService...

    动态调用webservice与复杂对象的序列化

    Web服务通常基于SOAP(简单对象访问协议)或REST(表述性状态转移)架构,用于不同系统之间的数据交换。动态调用意味着在运行时,程序能够根据需求创建并执行对Web服务的方法调用,而无需在编译时就已知具体的Web...

    什么是REST,符合REST的API叫RESTful 两种SOA接口实现:SOAP(WebService) vs REST

    百度百科.url`和`SOA接口的两种常用实现比较:SOAP(WebService) vs REST(GET,POST).url`分别指向了关于REST和SOAP/REST比较的参考资料,它们可以进一步深入理解这两种接口实现的区别和应用场景。 总的来说,RESTful...

    HTTP接口和WebService接口

    WebService接口,也称为SOAP(Simple Object Access Protocol)服务,是一种基于XML的协议,用于不同应用程序之间交换结构化和类型化的数据。WebService接口利用WSDL(Web Services Description Language)定义服务...

    webservice Soap和XFire2种方式代码列子

    **对比SOAP与REST** SOAP和REST(Representational State Transfer)是两种主要的Web服务风格。SOAP更注重消息的完整性和安全性,适合企业级的、需要强类型和事务处理的场景。而REST则更轻量,基于HTTP协议,易于...

    C# Soap调用WebService的实例

    2. 使用C#语言调用WebService时,可以使用不同的协议,例如SOAP、REST等。 3. 在调用WebService时,需要考虑安全性问题,例如身份验证、加密等。 4. 使用C#语言调用WebService时,可以使用不同的库和框架,例如...

    Webservice笔记含使用cxf和jaxws两种方式开发webservice【源代码+笔记】

    Soap1.1和soap1.2区别: 跟踪soap协议 综合案例: 使用webservice传输xml数据(重点掌握) 第二天: Jaxws的深入开发: 常用注解 测试jaxws传输复杂对象类型 CXF开发webservice: CXF入门程序 Spring+...

    CXF-REST搭建WebService服务端demo

    本示例将详细讲解如何使用Spring、Apache CXF和Maven来创建一个基于REST的WebService服务端Demo。 首先,让我们理解这些关键组件的作用: 1. **Spring**:这是一个全面的开发框架,用于构建Java应用程序,特别是...

    webService

    - RESTful Web服务:与传统的SOAP相比,REST(Representational State Transfer)更轻量级,更适合移动应用。它使用HTTP方法(GET, POST, PUT, DELETE)直接操作资源,返回JSON或XML格式的数据。 在"mServer"这个...

Global site tag (gtag.js) - Google Analytics