WebServices : REST vs SOAP

WebService: REST vs SOAP

万维网正经历海量数据进化到基于服务的演进,其中web service正是这次演进的重要部分。

什么是web service?

web service是两个设备跨越万维网的连接方式。W3C给web service给出的定义是:支持跨越网络的机器和机器之间交互的软件系统。他有机器可理解格式表达的接口(比如WSDL)。与之交互的其他系统根据预先定义的规则使用SOAP消息来交互,典型的,使用HTTP协议使用XML序列化来和其他系统互联。
Web-service-diagram.png
Roy Fielding提出了更可靠的web应用架构:表示状态转移(REST)。在REST风格中,请求和应答是围绕着资源的表示状态来构建的。一个资源(比如:一个人),可以是任何被定位的东西。资源的表示常常是一个文档(比如XML或是JSON)表示当前或预期的资源状态。

什么是SOAP

SOAP是用于实现Web Service时交换结构化信息的协议。它的消息格式使用XML。他和传输协议是不相关的(可以使用HTTP,FTP,TCP,UDP,或者命名管道)。基于SOAP的服务严格的定义了来回传递的消息格式。一个SOAP消息上面含有数据和操作,头信息和失败的错误信息。由WS-Security提供安全标准,然后它是端对端的。SOAP提供了让服务想客户端描述自己的机制(WSDL),以及发现(UDDI)。SOAP同样提供了可靠的消息机制(WS-ReliableMessageing),内建了重试并提供了端到端的可靠机制。

什么是REST

表示状态转移(REST)是一种用来设计网络应用的架构风格。

  • 相关的客户端和服务端各自发送请求和响应。
  • 请求和响应围绕着资源的表示转移来构建(比如 User的JSON请求表示)
    REST将一切东西抽象成资源(比如 用户,股票等),每个资源都实现了标准的接口(典型的是HTTP接口),资源具有名字和地址(URIs),每个资源都具有1个或多个表示(比如JSON 或 XML),在网络上使用HTTP传递。

REST网络API(或REST网络服务)是使用HTTP和REST 原则实现的网络API。RESTful API更关心用户接口(而不是数据存储)。提供了跨平台和简化服务组件(无状态),每一个来自客户端的请求都包括全部的状态信息,服务器不会再session中保存客户的上下文。

SOAP vs REST

SOAP一个主要的有点是WSDL服务描述。可以自动发现服务并生成服务代理客户端。在版本2.0中,WSDL支持所有的HTTP谓词并能很好的提供RESTful服务文档,但是WSDL相对来说比较臃肿.
HTTPS对RESTful服务的安全提供支持,仅是point-to-point的。缺乏标准的信息系统和异常处理。而SOAP具有内建的成功/重试机制,且提供end-to-end的基于SOAP的可靠机制。
RESTful服务一个主要的有点是其数据表示的灵活性,比如你可以序列化你的数据到XML或JSON格式。RESTful API是易于理解的,一个使用URI的元素+HTTP谓词。
同时RESTful服务也是轻量的,相比xml,没有额外的标签。调用RESTful API时,只需要一个浏览器或任何一台联网的设备。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值