|
简单对象访问协议(SOAP)是一种轻量级、基于 XML 的简单协议,其设计目标是在 Web 上交换结构化和规范化信息。SOAP 可以与多种现有 Internet 协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP)以及多用途的网际邮件扩充协议(MIME)。此外 SOAP 也支持一系列从信息传送系统到远程过程调用(RPCs:remote procedure calls)的应用程序。
SOAP 有三部分构成:
- SOAP 封装结构定义了一种暾蚣埽艘韵滦畔ⅲ盒畔⒛谌荩硇畔⒌亩韵笠约靶畔⑹强裳〉幕故乔恐菩缘摹?
- SOAP 编码规则提供了一整套交换已定义的应用程序数据类型的机制。
- SOAP RPC 表示定义了一种用于表示远程过程调用和响应的规范。
SOAP 信息基本上采用的是从发送端到接收端的单信道(One-Way)传输方式,但 SOAP 也常常与实现模式(如请求/响应)结合使用。所有 SOAP 信息采用 XML 进行编码。一个 SOAP 信息就是一个 XML 文档,它由一个强制 SOAP 封装,一个可选 SOAP 头和一个强制 SOAP 体三部分构成。
将 SOAP 绑定到 HTTP 上能使 HTTP 具有 SOAP 的形式化和分散化灵活性特征。在 HTTP 上传送 SOAP 并不意味着 SOAP 完全不考虑现有 HTTP 语义,而是自然将 HTTP 上的 SOAP 语义映射到 HTTP 语义上。在使用 HTTP 作为协议绑定(Protocol Binding)的情况下,会有一个 RPC 调用自然映射到一个 HTTP 请求,以及一个 RPC 响应映射到一个 HTTP 响应上,但是如果通过 SOAP 实现 RPC,则不会受 HTTP 协议绑定指令的限制。 |