首页 > 其他分享 >什么是SOAP

什么是SOAP

时间:2024-05-23 11:11:04浏览次数:15  
标签:XML 协议 HTTP 什么 soap 消息 SOAP

SOAP的是什么的简写

soap是(Simple Object Access Protocal)的简写,即简单对象访问协议,它描述了一种在分散或分布式的环境中如何交换信息的轻量级协议。

soap用来干什么的

SOAP在http协议的基础上,是基于XML的简易协议,可使应用程序在HTTP之上进行信息交换,也就是用于访问网络服务的协议。SOAP的优点是可以传递结构化的数据,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器。Web服务器再把这些请求转发给Web service请求处理器,它解析收到的SOAP请求,调用Web service,处理后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。从HTTP协议的角度看,最基本的四种操作是GET(查),POST(改),PUT(增),DELETE(删),我们用的比较多的是POST和GET方式。而SOAP可视为POST的一个专用版本,遵循一种特殊的XML消息格式。

soap的组成部分

包括四个部分

  • SOAP封装:它定义了一个整体框架用来表示消息中包含什么内容,谁来处理,以及这些内容是可选的或是必需的。
  • SOAP编码规则:定义了用以交换应用程序定义的数据类型的实例的一系列机制。
  • SOAP RPC:表示定义了一个用来表示远程调用和应答的协议。
  • SOAP绑定:定义了一种使用底层传输协议来完成在节点间交换SOAP封装的约定。

soap协议的语法规则

构建模块
  一条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引用
(文档类型定义(DTD,Document Type Definition)是一种特殊文档,它规定、约束符合标准通用标示语言(SGML)或SGML子集可扩展标示语言(XML)规则的定义和陈述。)
      5)不能包含XML处理指令

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协议的优点

  • 可扩展的
    SOAP无需中断已有的应用程序, SOAP客户端、 服务器和协议自身都能发展。而且SOAP能极好地支持中间介质和层次化的体系结构。
  • 简单的
    客户端发送一个请求,调用相应的对象, 然后服务器返回结果。这些消息是XML格式的,并且封装成符合HTTP协议的消息。因此,它符合任何路由器、 防火墙或代理服务器的要求。
  • 完全和厂商无关
    SOAP可以相对于平台、 操作系统、 目标模型和编程语言独立实现。另外,传输和语言绑定以及数据编码的参数选择都是由具体的实现决定的。
  • 与编程语言无关
    SOAP可以使用任何语言来完成,只要客户端发送正确SOAP请求( 也就是说, 传递一个合适的参数给一个实际的远端服务器)。SOAP没有对象模型,应用程序可以捆绑在任何对象模型中。
  • 与平台无关
    SOAP可以在任何操作系统中无需改动正常运行。

总结

SOAP与XML的关系:所有的SOAP消息都使用XML形式编码
SOAP简单的理解就是这样的一个开放协议SOAP=RPC+HTTP+XML:
采用HTTP作为底层通讯协议;RPC作为一致性的调用途径,XML作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。
一个SOAP方法可以简单地看作遵循SOAP编码规则的HTTP请求和响应, 一个 SOAP终端则可以看作一个基于HTTP的URL, 它用来识别方法调用的目标。像CORBA/IIOP一样, SOAP不需要具体的对象绑定到一个给定的终端, 而是由具体实现程序来决定怎样把对象终端标识符映像到服务器端的对象。

标签:XML,协议,HTTP,什么,soap,消息,SOAP
From: https://www.cnblogs.com/paimianbaobao/p/18207912

相关文章

  • 什么样的数据摆渡设备,可以满足不同网间数据的安全传输需求?
    数据摆渡设备是用来在不同的网络环境间安全地传输数据的硬件或软件解决方案。它们通常用于确保在具有不同安全级别的网络(如内网和外网)之间进行数据交换时的安全性和合规性。以下是一些常见的数据摆渡设备和方法:移动介质拷贝:使用U盘或移动硬盘等移动介质进行数据拷贝,这是一种比较......
  • 讲一下什么是Spring
    Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。主要由以下几个模块组成:SpringCore:核心类库,提供I......
  • 1.说说你了解过、使用过什么编程语言?比较他们的优势 2.说说你了解过,使用过什么编程工
    1.我了解过、使用过的编程语言有C语言,Java,C++。比较:①C语言是一种通用的高级编程语言,具有高效性和直接接近计算机硬件的能力,适合编写操作系统和嵌入式系统等低级应用。但C语言缺乏面向对象的支持,对于大型项目的复杂性处理有些力不从心。②Java是一种跨平台的面向对象编程语言,......
  • nc反弹以及中 &>、0>&1是什么意思
    1.简介本文结合一些参考文章以及作者个人理解解释Linux的bash反弹命令中的&>、0>&1观点有误,欢迎指出!目标讨论命令:bash-i>&/dev/tcp/ip/port0>&12.基本知识1.bashbash是什么?是一种shell。shell是什么?此处引用https://blog.csdn.net/weixin_42432281/article/detail......
  • 1.什么是模块化,为什么要模块化? 2.衡量模块化独立的定性标准是什么?用自己的话表达其含
    模块化是将一个系统划分为多个独立的模块或组件,每个模块负责处理系统的一部分功能或任务。模块化能够使代码结构更清晰、易于维护和扩展,提高代码的重用性和可读性。通过模块化,开发人员可以更加高效地协同工作,降低系统复杂度。衡量模块化独立的定性标准包括内聚性和耦合性。内......
  • 【瞎写】熊是什么颜色的?
    网上流传着一个这样的地理题:一个探险家在野外扎了顶帐篷,之后他往南走了10公里,往西走了10公里,再往北走了10公里后,发现有一头熊在撕扯他的帐篷。问这头熊是什么颜色的?答案大家都能猜到,探险家的帐篷在北极,因此这头熊是白色。这是因为,一般情况下,如果走的路径不是一个闭合的路线,是不......
  • 小程序用什么css框架
    随着小程序的快速发展,越来越多的开发者开始关注小程序的前端开发。在小程序的前端开发中,CSS框架是一个非常重要的工具,它可以帮助开发者快速构建出漂亮、响应式的界面。那么,小程序应该使用哪种CSS框架呢?在本文中,我们将介绍几种常用的CSS框架,并分析它们的优缺点,帮助开发者选择适合......
  • 文件加密软件有什么用?都有哪些功能?
    文件加密软件的作用及功能详解在数字化时代,保护数据的安全成为了企业和个人都不可忽视的重要议题。文件加密软件,作为数据安全的重要工具,以其独特的加密技术,为用户提供了一道坚实的数据保护屏障。那么,文件加密软件究竟有什么用处,又都具备哪些功能?下面就为大家详细介绍。文件加......
  • HttpURLConnection 调用soap 并且使用Dom4j解析多层级XML为Map对象
    1.引入dom4j的maven依赖包<dependency><groupId>org.dom4j</groupId><artifactId>dom4j</artifactId><version>2.1.4</version></dependency>2.转map方法1importjava.io.BufferedReader;2importjava.io.InputStrea......
  • P4859 已经没有什么好害怕的了
    P4859已经没有什么好害怕的了二项式反演看到恰好,求方案数,可以想到二项式反演。套路钦定\(k\)组糖果比药片能量大,其他任意组合,这样的方案数记为\(g_k\)。再设\(f_k\)表示恰好\(k\)组的糖果比药片能量大的方案数,现在要找到\(g\)和\(f\)之间的关系。容易推出\(g_k=\s......