SOAP协议

  1、来源:对于应用程序开发来说,程序之间的互联网通信是很重要的。目前的应用程序使用远程过程调用(RPC)在诸如DCOM,CORBA等对象之间通信,但是HTTP不是为此设计的。RPC会产生兼容性以及安全问题。通过HTTP在应用程序之间通信是更好的方法,因为HTTP得到了所有互联网浏览器以及服务器的支持。SOAP就是被用来完成这个任务。

  2、简介

    1)SOAP(Simple Object Access Protocal,简单对象访问协议)

    2)以可扩展标记语言(XML)形式提供了一个简单、轻量的用于在分散或分布环境中交换结构化和类型信息的机制。

    3)通过提供一个有标准组件的包模型和在模型中编码数据的机制,定义一个简单的表示应用程序语言的机制。

  3、包括三个部分

    1)SOAP分装结构定义了一个整体框架用来表示消息中包含什么内容,谁来处理,以及这些内容是可选的或是必需的。

    2)SOAP编码规则定义了用以交换应用程序定义的数据类型的实例的一系列机制。

    3)SOAP RPC表示定义了一个用来表示远程调用和应答的协议。

  4、设计目标:简单性和扩展性,这就意味着传统的消息系统和分布对象的某些性质不是SOAP规范的一部分,包括:

    分布式碎片手机;

    成批传送消息;

    对象引用;

    激活机制;

  5、SOAP与XML的关系:所有的SOAP消息都使用XML形式编码

  6、协议结构:

    SOAP消息格式:
 
 
<SOAP-ENV:Envelope
 各种属性>
<!--百度百科示例-->
 <SOAP:HEADER>
 </SOAP:HEADER>
 <SOAP:Body>
 </SOAP:Body>
</SOAP-ENV:Envelope>
    主要在web服务中运用。
  7、语法规则:
    一条SOAP消息就是一个普通的XML文档,包含下列元素;
      1)必需的Envelope元素,可把此XML文档表示为一条SOAP消息。
      2)可选的Header元素,包含头部信息。
      3)必需的Body元素,包含所有的调用和响应消息;
      4)可选的Fault元素,提供有关在处理此消息发生错误的信息
    语法规则
      1)SOAP消息必须用XML来编码;
      2)SOAP消息必须使用SOAP Envelope命名空间
      3)SOAP消息必须使用SOAP Encoding
      4)SOAP消息不能包含DTD。
      5)不能包含XML处理指令
  8、消息基本结构
    <?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>
    
原文地址:https://www.cnblogs.com/weiliuyby/p/8449394.html