什么是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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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值