【历史组成】
SOAP是“Simple Object Access Protocol”的缩写。
最新版本SOAP 1.2版在2003年6月24日成为W3C的推荐版本。
SOAP由Dave Winer, Don Box,Bob Atkinson, Mohsen Al-Ghosein于1998年设计,当时只作为一种对象访问协议。SOAP规范由 万维网联盟的 XML工作组维护。
【四个部分】
『封装』
它定义了一个框架 , 该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必须的。
『编码规则』
它定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例。
『RPC表示』
它定义了用于表示远程过程调用和应答的协定。
『绑定』
定义了一种使用底层传输协议来完成在节点间交换SOAP封装的约定。
SOAP消息基本上是从发送端到接收端的单向传输,但它们常常结合起来执行类似于请求 / 应答的模式。所有的 SOAP消息都使用 XML 编码。一条 SOAP消息就是一个包含有一个必需的 SOAP 的封装包,一个可选的 SOAP 标头和一个必需的 SOAP 体块的 XML 文档。把 SOAP 绑定到 HTTP 提供了同时利用 SOAP 的样式和分散的灵活性的特点以及 HTTP 的丰富的特征库的优点。在HTTP上传送 SOAP 并不是说 SOAP 会覆盖现有的 HTTP 语义,而是 HTTP 上的 SOAP 语义会自然的映射到 HTTP 语义。在使用 HTTP 作为协议绑定的场合中, RPC 请求映射到 HTTP 请求上,而 RPC 应答映射到 HTTP 应答。然而,在 RPC 上使用 SOAP 并不仅限于 HTTP 协议绑定。SOAP也可以绑定到TCP和UDP协议上。