网站大量收购独家精品文档,联系QQ:2885784924
  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SOAP協议

SOAP协议 SOAP简介 SOAP以XML形式提供了一个简单、轻量的用于在分散或分布环境中交换结构化和类型信息的机制。XML的标准化为平台之间的交流带来了极大的方便,而SOAP的实质就是把这种交流的方式标准化。SOAP本身并没有定义任何应用程序语义 ,如编程模型或特定语义的实现;实际上它通过提供一个有标准组件的包模型和在模块中编码数据的机制 ,定义了一个简单的表示应用程序语义的机制。这使 SOAP能够被用于从消息传递到RPC的各种系统。 SOAP采用了已经广泛使用的两个协议:HTTP 和XML(标准通用标记语言下的一个子集)。HTTP用于实现 SOAP 的RPC 风格的传输, 而XML 是它的编码模式。采用几行代码和一个XML 解析器, HTTP 服务器( MS 的 IIS 或 Apache) 立刻成为SOAP 的 ORBS。SOAP 通讯协议使用 HTTP 来发送XML 格式的信息。HTTP与RPC 的协议很相似,它简单、 配置广泛,并且对防火墙比其它协议更容易发挥作用。HTTP 请求一般由 Web 服务器软件(如 IIS 和Apache)来处理, 但越来越多的应用服务器产品正在支持HTTP。XML 作为一个更好的网络数据表达方式( NDR)。SOAP 把 XML 的使用代码化为请求和响应参数编码模式, 并用HTTP 作传输。具体地讲, 一个SOAP 方法可以简单地看作遵循SOAP编码规则的HTTP请求和响应, 一个 SOAP终端则可以看作一个基于HTTP 的URL, 它用来识别方法调用的目标。像CORBA/ IIOP一样, SOAP不需要具体的对象绑定到一个给定的终端, 而是由具体实现程序来决定怎样把对象终端标识符映像到服务器端的对象。 SOAP包括三个部分 ? SOAP封装:结构定义了一个整体框架用来表示消息中包含什么内容 ,谁来处理这些内容以及这些内容是可选的或是必需的。 ? SOAP编码规则:定义了用以交换应用程序定义的数据类型的实例的一系列机制。 ? SOAP RPC表示:定义了一个用来表示远程过程调用和应答的协定。 虽然这三个部分都作为SOAP的一部分一起描述 ,但它们在功能上是相交的。特别的 ,封装和编码规则是在不同的名域中定义的 ,这种模块性的定 义方法增加了简单性。在SOAP封装 ,SOAP编码规则和SOAP RPC协定之外 ,这个规范还定义了两个协议的绑定 ,描述了在有或没有HTTP扩展框架的情况下 ,SOAP消息如何包含在HTTP消息中被传送。 SOAP语法 SOAP构建模块 一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素: 必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息 可选的 Header 元素,包含头部信息 必需的 Body 元素,包含所有的调用和响应信息 可选的 Fault 元素,提供有关在处理此消息所发生错误的信息 所有以上的元素均被声明于针对 SOAP 封装的默认命名空间中: /2001/12/soap-envelope 以及针对 SOAP 编码和数据类型的默认命名空间: /2001/12/soap-encoding SOAP 消息的基本结构 ?xml version=1.0? soap:Envelope xmlns:soap=/2001/12/soap-envelope soap:encodingStyle=/2001/12/soap-encoding soap:Header ... ... /soap:Header soap:Body ... ... soap:Fault ... ... /soap:Fault /soap:Body /soap:Envelope SOAP Envelope 元素 必需的 SOAP 的 Envelope 元素是 SOAP 消息的根元素。它可把 XML 文档定义为 SOAP 消息。 请注意 xmlns:soap 命名空间的使用。它的值应当始终是: /2001/12/soap-envelope 并且它可把封装定义为 SOAP 封装: ?xml version=1.0? soap:Envelope xmlns:soap=/2001/12/soap-envelope soap:encodingStyle=/2001/12/soap-encoding ... Message information goes here ... /soap:Envelope xmlns:soap 命名空间 SOAP 消息必须拥有与命名空间/2001/12/soap-envelope 相关联的一个 Envelope 元素。 如果使用了不同的命名空间,应用程序会发生错误,并抛

文档评论(0)

bmdj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档