什么是rest
REST (REpresentational State Transfort) 形式上应该表述为客户端通过申请资源来实现状态的转换,在这个角度系统可以看成一台虚拟的状态机。抛开R. T. Fielding博士论文里晦涩的理论不说,REST应该满足这样的特点:1)客户端和服务器结构;2)连接协议具有无状态性;3)能够利用Cache机制增进性能;4)层次化的系统;说到底,REST只是一种架构风格,而不是协议或标准。但这种新的风格(也许已经历史悠久?)对现有的以SOAP为代表的Web Service造成的冲击也是革命性的,因为它面向资源,甚至连服务也抽象成资源,因为它和HTTP紧密结合,因为它服务器无状态。

目前知道的三种主流的Web服务实现方案为:
REST:表象化状态转变 (软件架构风格)
SOAP:简单对象访问协议
XML-RPC:远程过程调用协议 (已经慢慢被SOAP取代)

其他理解:
REST:表征状态转移(Representational State Transfer),采用Web 服务使用标准的 HTTP 方法 (GET/PUT/POST/DELETE) 将所有 Web 系统的服务抽象为资源,REST从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。Http协议所抽象的get,post,put,delete就好比数据库中最基本的增删改查,而互联网上的各种资源就好比数据库中的记录(可能这么比喻不是很好),对于各种资源的操作最后总是能抽象成为这四种基本操作,在定义了定位资源的规则以后,对于资源的操作通过标准的Http协议就可以实现,开发者也会受益于这种轻量级的协议。REST是一种软件架构风格而非协议也非规范,是一种针对网络应用的开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

SOAP:简单对象访问协议(Simple Object Access Protocol)是一种标准化的通讯规范,主要用于Web服务(web service)中。用一个简单的例子来说明 SOAP 使用过程,一个 SOAP 消息可以发送到一个具有 Web Service 功能的 Web 站点,例如,一个含有房价信息的数据库,消息的参数中标明这是一个查询消息,此站点将返回一个 XML 格式的信息,其中包含了查询结果(价格,位置,特点,或者其他信息)。由于数据是用一种标准化的可分析的结构来传递的,所以可以直接被第三方站点所利用。

XML-RPC:一个远程过程调用(remote procedure call,RPC)的分布式计算协议,通过XML将调用函数封装,并使用HTTP协议作为传送机制。后来在新的功能不断被引入下,这个标准慢慢演变成为今日的SOAP协定。XML-RPC协定是已登记的专利项目。XML-RPC透过向装置了这个协定的服务器发出HTTP请求。发出请求的用户端一般都是需要向远端系统要求呼叫的软件。

三种方案的简单比较
XML-RPC已慢慢的被SOAP所取代,现在很少采用了,但它还是有版权的,我在此就不作多介绍。
成熟度上:SOAP在成熟度上优于REST
效率和易用性上:REST更胜一筹(REST效率更高的原因在于,仅仅是建议的Http协议之上的一种协议。而SOAP则需要对数据、xml封装信息头,解封装等)
安全性上:SOAP安全性高于REST,因为REST更关注的是效率和性能问题
分布式能力:REST更适合在分布式环境中使用、因为REST是基于原生Http协议的,而http协议是无状态的。大型分布式环境都能够对无状态支持良好,无状态增强了整个系统的扩展性。这也是为什么越来越多的云计算,分布式项目选择REST。
(注:SOAP也是基于HTTP协议的,但是却提供了session、cookie等机制来使得SOAP有状态,从而支持需要有状态的业务。有状态举例:1、增加一个用户2、获取最新增加的用户。那1的执行成功与否,及执行先后顺序的状态将会影响2的结果。)

总体上,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。例如,Amazon.com提供接近REST风格的Web服务进行图书查找;雅虎提供的Web服务也是REST风格的。REST对于资源型服务接口来说很合适,同时特别适合对于效率要求很高,但是对于安全要求不高的场景。而SOAP的成熟性可以给需要提供给多开发语言的,对于安全性要求较高的接口设计带来便利。所以我觉得纯粹说什么设计模式将会占据主导地位没有什么意义,关键还是看应用场景,正是那句老话:适合的才是最好的
同时很重要一点就是不要扭曲了REST现在很多网站都跟风去开发REST风格的接口,其实都是在学其形,不知其心,最后弄得不伦不类,性能上不去,安全又保证不了,徒有一个看似象摸象样的皮囊。

SOAP在安全方面是通过使用XML-Security和XML-Signature两个规范组成了WS-Security来实现安全控制的,当前已经得到了各个厂商的支持,.net ,php ,java 都已经对其有了很好的支持。REST没有任何规范对于安全方面作说明。因此在考虑安全性上,SOAP要高于REST。

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

相关文章:

  • 2022-12-23
  • 2021-06-06
  • 2021-11-25
  • 2021-09-02
  • 2021-09-11
  • 2021-10-06
  • 2021-09-27
猜你喜欢
  • 2018-12-14
  • 2021-07-28
相关资源
相似解决方案