SOAP与REST

来源:互联网 发布:linux中文输入法 apt 编辑:程序博客网 时间:2024/05/28 08:29
前言
    在说两者区别前,我想先说下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在这方面就比较灵活些,提供的支持更多一些,但是最初使用起来会有些麻烦。
8 0
原创粉丝点击