WebServices : REST vs SOAP
WebService: REST vs SOAP万维网正经历海量数据进化到基于服务的演进,其中web service正是这次演进的重要部分。 什么是web service?web service是两个设备跨越万维网的连接方式。W3C给web service给出的定义是:支持跨越网络的机器和机器之间交互的软件系统。他有机器可理解格式表达的接口(比如WSDL)。与之交互的其他系统根据预先定义的规则使用SOAP消息来交互,典型的,使用HTTP协议使用XML序列化来和其他系统互联。 Roy Fielding提出了更可靠的web应用架构:表示状态转移(REST)。在REST风格中,请求和应答是围绕着资源的表示状态来构建的。一个资源(比如:一个人),可以是任何被定位的东西。资源的表示常常是一个文档(比如XML或是JSON)表示当前或预期的资源状态。 什么是SOAPSOAP是用于实现Web Service时交换结构化信息的协议。它的消息格式使用XML。他和传输协议是不相关的(可以使用HTTP,FTP,TCP,UDP,或者命名管道)。基于SOAP的服务严格的定义了来回传递的消息格式。一个SOAP消息上面含有数据和操作,头信息和失败的错误信息。由WS-Security提供安全标准,然后它是端对端的。SOAP提供了让服务想客户端描述自己的机制(WSDL),以及发现(UDDI)。SOAP同样提供了可靠的消息机制(WS-ReliableMessageing),内建了重试并提供了端到端的可靠机制。 什么是REST表示状态转移(REST)是一种用来设计网络应用的架构风格。
REST网络API(或REST网络服务)是使用HTTP和REST 原则实现的网络API。RESTful API更关心用户接口(而不是数据存储)。提供了跨平台和简化服务组件(无状态),每一个来自客户端的请求都包括全部的状态信息,服务器不会再session中保存客户的上下文。 SOAP vs RESTSOAP一个主要的有点是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时,只需要一个浏览器或任何一台联网的设备。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |