SOAP简介

什么是 SOAP?

  • SOAP 指简易对象访问协议

  • SOAP 是一种通信协议

  • SOAP 用于应用程序之间的通信

  • SOAP 是一种用于发送消息的格式

  • SOAP 被设计用来通过因特网进行通信

  • SOAP 独立于平台

  • SOAP 独立于语言

  • SOAP 基于 XML

  • SOAP 很简单并可扩展

  • SOAP 允许您绕过防火墙

  • SOAP 将被作为 W3C 标准来发展

SOAP 构建模块

一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:

  • 必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息

  • 可选的 Header 元素,包含头部信息

  • 必需的 Body 元素,包含所有的调用和响应信息

  • 可选的 Fault 元素,提供有关在处理此消息所发生错误的信息

语法规则

这里是一些重要的语法规则:

  • SOAP 消息必须用 XML 来编码

  • SOAP 消息必须使用 SOAP Envelope 命名空间

  • SOAP 消息必须使用 SOAP Encoding 命名空间

  • SOAP 消息不能包含 DTD 引用

  • SOAP 消息不能包含 XML 处理指令

SOAP主体结构

Envelope 必选 消息的根元素

header    可选 

SOAP头部信息,包含相关SOAP消息的应用程序专用信息(认证、支付等)。如果header被提供,必须是envelope的第一个节点

body       必选

必需的 SOAP Body 元素可包含打算传送到消息最终端点的实际 SOAP 消息。

fault        可选

可选的 SOAP Fault 元素用于指示错误消息。

如果已提供了 Fault 元素,则它必须是 Body 元素的子元素。在一条 SOAP 消息中,Fault 元素只能出现一次。

SOAP总述

SOAP是基于xml传输的http请求,可参考下面的示例,一个为请求,另一个是响应

POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?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:Body xmlns:m="http://www.example.org/stock">
    <m:GetStockPrice>
      <m:StockName>IBM</m:StockName>
    </m:GetStockPrice>
  </soap:Body>
  
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?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:Body xmlns:m="http://www.example.org/stock">
    <m:GetStockPriceResponse>
      <m:Price>34.5</m:Price>
    </m:GetStockPriceResponse>
  </soap:Body>
  
</soap:Envelope>

 

你可能感兴趣的:(SOAP简介)