SOAP(Simple Object Access Protocol)简单对象访问协议。
Protocol协议就是为了达成某事遵循的一系列规则,或则是执行特定的事情需要遵循的规则。例如:申请护照,定义了一系列规则。每个人必须遵循这些规则才能得到护照。它提供的是一个标准。同样,在软件领域,为特定的行为定义了协议。例如:
HTTP(Hypertext Transfer Protocol)互联网超文本传输协议
FTP(File Transfer Protocol)互联网文件传输协议
所以SOAP也是一个通讯或则是消息协议。它允许你以XML的形式互联网两个独立的系统或则应用间交换信息。比如:Web Services。基于XML的协议,使用JAX-WS(Java API for XML Web Services)规范,是XML Web Sservices的JAVA API。SOAP为结构化消息定义了一系列规则,用于从发送端到接收端的单向消息传输,或则执行类似于请求 / 应答的模式。
SOAP是与平台和语言无关的。我们可以使用任何语言和平台开发SOAP的 web services。为了接收和传输XML格式的消息,也可以使用其它协议,比如:HTTP和SMTP协议。
SOAP消息格式:
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
</soap:Header>
<soap:Body>
<soap:Fault>
</soap:Fault>
</soap:Body>
</soap:Envelope>
构建模块
一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:
必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息
可选的 Header 元素,包含头部信息
必需的 Body 元素,包含所有的调用和响应信息
可选的 Fault 元素,提供有关在处理此消息所发生错误的信息
语法规则:
SOAP 消息必须用 XML 来编码
SOAP 消息必须使用 SOAP Envelope 命名空间
SOAP 消息必须使用 SOAP Encoding 命名空间
SOAP 消息不能包含 DTD 引用
SOAP 消息不能包含 XML 处理指令
SOAP用WSDL(Web Services Description Language) 以XML的形式来描述一个Web Service的功能。包括EndPoints,输入/输出的消息格式。
总结:SOAP就是一个开发Web services的协议,允许系统之间以XML形式,及符合任意传输协议(如HTTP)的消息通讯。