SOAP webserivce 和 RESTful webservice 对比及区别
基于REST的软件体系结构风格(Software Architecture Style)称之为面向资源体系架构(Resource-oriented Architecture,ROA)。按照REST原则设计的软件、体系结构,通常被称为“REST式的”(RESTful),在本文中以下称之为 RESTful Web服务,以便于和基于SOAP的Web服务区别。 SOAP Web服务和RESTful Web服务是两种常见的Web服务交互方式,它们在设计理念、协议复杂度、数据格式和操作方式等方面存在显著的区别。 SOAP(简单对象访问协议)是一种基于XML的协议,它允许不同系统之间的应用程序通过网络进行通信。SOAP提供了一套完整的框架,包括错误处理、事务管理以及安全标准,如WS-Security、WS-ReliableMessaging等,确保了消息的可靠性和安全性。SOAP消息通常通过HTTP、SMTP等协议传递,并且支持远程过程调用(RPC)模式,使得调用远程服务就像调用本地方法一样。然而,SOAP的复杂性和重量级特性使其在某些场景下显得效率较低,不适合轻量级和高并发的应用。 相反,REST(表述性状态转移)是一种轻量级的架构风格,它基于HTTP协议,强调资源的识别和操作。RESTful Web服务将资源作为核心,每个资源都有一个唯一的URI(统一资源标识符),并使用HTTP方法(GET、POST、PUT、DELETE)来表示资源的操作。这种方式简化了服务接口,降低了通信复杂性,提高了性能和可伸缩性。RESTful服务通常不需要额外的协议层,直接使用HTTP标准,使得缓存机制更易于实现,从而提升响应速度。 在安全控制方面,RESTful服务通常通过HTTP方法的安全特性来实施。例如,GET和HEAD请求被认为是安全的,不会改变服务器状态,而PUT和DELETE请求则可以执行幂等操作,即多次执行结果相同。客户端和服务器之间的权限控制可以通过检查URI和HTTP方法来实现,这在代理服务器上很容易配置。 相比之下,SOAP服务的安全控制通常涉及更复杂的XML消息验证和处理,因为所有的业务逻辑和安全信息都封装在SOAP消息中。这可能导致在现有的HTTP代理服务器上实现安全策略时遇到困难,因为代理可能无法直接解析和处理SOAP消息的内容。 在客户端支持上,无论是SOAP还是RESTful服务,现代的客户端技术如AJAX、Flex、JavaFX、AIR等都能提供支持,它们可以通过XMLHttpRequest或HTTPService等组件与服务进行通信。不过,直接调用Servlet通常是J2EE服务器端与这些客户端的交互方式。 SOAP更适合需要强一致性、交易性和安全性的企业级应用,而RESTful则更适用于互联网和移动应用,强调简洁、高效和可扩展性。选择哪种服务方式取决于具体的应用场景和需求。
剩余6页未读,继续阅读
- cnwangjie2017-11-08对于初学者有很好的帮助。
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助