SOAP与REST

前言
    在说两者区别前,我想先说下SOAP和REST并不是对立的,两者各有千秋,而且还可以结合使用,今天我们就从标准性、简易性等方面来对其进行比较。

正题
一、标准性
    REST缺乏标准,因此只被看作是一种架构方法,目前基于HTTP/HTTPS。

    SOAP是一个工业标准,它具备良好定义的协议,以及一套良好确立的规则,在大型和小型系统中均有采用。SOAP可支持任何传输协议,从HTTP/HTTPS到SMTP(Simple Mail Transfer Protocol,简单邮件传送协议),甚至JMS(Java Messaging Service,Java消息传递服务)。

二、使用简易性
    REST最大的优点就是极易上手,使用方便。

三、数据处理
    REST可以支持多种数据格式,比如JSON;而SOAP只支持XML。

四、安全性
    SOAP相对安全性能更高,因为它不仅支持SSL,而且还支持WS-Security,所以会更受一些企业级用户的喜爱,因为SOAP可以使他们的数据更加的安全。

    REST则只支持SSL,对于这一安全策略,已经可以满足大部分用户的需求。

五、适用范围
REST的适用场合:
1.有限的带宽和资源
    别忘了返回的结构可以采用(由开发者定义的)任何格式。另外,由于REST采用标准的GET、PUT、POST和DELETE动词,因此可被任何浏览器所支持。除此以外,REST还可以使用为目前大多数浏览器支持的XMLHttpRequest对象,这为AJAX增色不少。

2.完全无状态的操作 
    对于那些需多步执行的操作,REST并非最佳选择,采用SOAP更合适。但是,如果你需要无状态的CRUD(Create/Read/Update/Delete,创建/读取/更新/删除)操作,那么应采用REST。

3.缓存考虑 
    若要利用无状态操作的特性,使得信息可被缓存,那么REST是很好的选择。

SOAP的使用场合:
1.异步处理与调用 
    如果你的应用需要确保可靠性与安全性,那么请采用SOAP。SOAP 1.2为确保这种操作补充定义了WSRM(WS-Reliable Messaging)等标准。

2.形式化契约 
    若提供者/消费者双方必须就交换格式取得一致,那么采用SOAP更合适。SOAP 1.2为这种交互提供了严格的规范。

3.有状态的操作 
    如果应用需要上下文信息与对话状态管理,那么应采用SOAP。SOAP 1.2为此补充定义了WS-Security、WS-Transactions和WS-Coordination等标准。相比之下,REST方法要求开发者自己来实现这些框架性工作。

六、小结
    在我使用REST和SOAP的过程中,REST的确使用起来简单方便,但是限制较多,由于其缺乏标准,所以第三方提供的REST接口较少,依赖性较强;相比之下SOAP在这方面就比较灵活些,提供的支持更多一些,但是最初使用起来会有些麻烦。
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值