zoukankan      html  css  js  c++  java
  • 概念——SOAP(简单对象访问协议)

    本文内容

    • SOAP 概述
    • SOAP 传输方式
    • SOAP 语法规则
    • SOAP 消息实例

    SOAP 概述


    SOAP(Simple Object Access Protocol,简单对象访问协议)是一种标准化的通讯规范,主要用于 Web 服务(Web Service)。SOAP 是为了简化网页服务(Web Server)。从 XML 提取数据时,无需花时间去格式化页面。让不同的应用程序之间通过 HTTP 协议,以 XML 格式交换数据,这样,与编程语言、平台和硬件无关。

    SOAP 由 IBM、Microsoft、UserLand 和 DevelopMentor 在 1998 年共同提出,并得到 IBM、Lotus、Compaq 等公司的支持,于 2000 年提交 W3C。目前 SOAP 1.1 版是业界标准,是第二代 XML 协定。第一代的主要代表为 XML-RPC 和 WDDX。

    SOAP 的一个简单例子:假设,有一个房价的数据库,SOAP 消息参数中指定房价查询信息,Web 服务点根据该查询信息,返回一个 XML 格式信息,其中包含查询结果(如价格、位置、特点,或者其他信息)。由于 XML 数据是一种结构化文本标准,可以被第三方使用。

    SOAP 传输方式


    SOAP 使用因特网的应用层协议作为其传输协议。HTTP 或 SMTP 协议都可以用来传输 SOAP 消息,但由于 HTTP 在现在的因特网中工作得很好,特别是在网络防火墙下仍然正常工作,所以被广泛采纳。

    SOAP 也可以在 HTTPS 上传输。

    SOAP 语法规则


    • SOAP 消息必须使用 XML 编码
    • SOAP 消息必须使用 SOAP Envelope 命名空间
    • SOAP 消息必须使用 SOAP Encoding 命名空间
    • SOAP 消息不能包含 DTD 引用
    • SOAP 消息不能包含 XML 处理指令

    SOAP 消息实例


    请求
    <soapenv:Envelope
        xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <soapenv:Body>
        <req:echo xmlns:req="http://localhost:8080/axis2/services/MyService/">
          <req:category>classifieds</req:category>
        </req:echo>
      </soapenv:Body>
    </soapenv:Envelope>
    回应
    <soapenv:Envelope
        xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
      <soapenv:Header>
        <wsa:ReplyTo>
          <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
        </wsa:ReplyTo>
        <wsa:From>
          <wsa:Address>http://localhost:8080/axis2/services/MyService</wsa:Address>
        </wsa:From>
        <wsa:MessageID>ECE5B3F187F29D28BC11433905662036</wsa:MessageID>
      </soapenv:Header>
      <soapenv:Body>
        <req:echo xmlns:req="http://localhost:8080/axis2/services/MyService/">
          <req:category>classifieds</req:category>
        </req:echo>
      </soapenv:Body>
    </soapenv:Envelope>

  • 相关阅读:
    mysql常用命令(2)
    mysql常用命令(1)
    svn使用方法介绍(1)
    java设计模式
    maven常见错误
    Powershell上线MSF
    Alibaba Nacos 认证绕过
    好视通-视频会议存在弱口令&任意文件下载漏洞
    金山 V8 终端安全系统存在默认口令
    (CVE-2021-3297)Zyxel NBG2105身份验证绕过漏洞
  • 原文地址:https://www.cnblogs.com/liuning8023/p/2613620.html
Copyright © 2011-2022 走看看