SOAP协议的深度解析

SOAP协议的深度解析笔记上传:1.soap与http的区别:HTTP只负责把数据传送过去,不会管这个数据是XML、HTML、图片、文本文件或者别的什么。( HTTP就是邮局的协议,他们规定了你的信封要怎么写,要贴多少邮票等。。。。)而SOAP协议则定义了怎么把一个对象变成XML文本,在远程如何调用等  (SOAP就是你们之间交流的协议,负责把你所需要表达的意思写在信纸上,同时也负责让对方能够看得懂你的信。)2.s…

大家好,又见面了,我是你们的朋友全栈君。

笔记上传:

1.soap与http的区别:

HTTP只负责把数据传送过去,不会管这个数据是XML、HTML、图片、文本文件或者别的什么。( HTTP就是邮局的协议,他们规定了你的信封要怎么写,要贴多少邮票等。。。。 )

而SOAP协议则定义了怎么把一个对象变成XML文本,在远程如何调用等   (SOAP就是你们之间交流的协议,负责把你所需要表达的意思写在信纸上,同时也负责让对方能够看得懂你的信。)


2.soap简介:

SOAP(Simple Object Accrss Protocol,简单对象访问协议)是一种简单的基于XML的协议,可以使应用程序在分散或分布式的环境中,多数通过HTTP来传输信息的。(soap的默认端口号8880,ftp的代理服务器的默认端口号是21

SOAPWeb Service的通信协议,是基于XML语言和XSD标准,其定义了一套编码规则,编码规则定义如何将数据表示为消息,以及怎样通过HTTP协议来传输SOAP消息,由四部分组成:

(1) SOAP信封(Envelope):定义了一个框架,框架描述了消息中的内容是什么,包括消息的内容、发送者、接收者、处理者以及如何处理消息。

(2)SOAP编码规则:定义了一种系列化机制,用于交换应用程序所定义的数据类型的实例。

(3) SOAP RPC表示:定义了用于表示远程过程调用和应答协定。

(4)SOAP绑定:定义了一种使用底层传输协议来完成在节点间交换SOAP信封的约定。

SOAP消息基本上是从发送端到接收端的单向传输,常常结合起来执行类似于请求/应答的模式。

3.soap特性:

1).SOAP是一种轻量级通信协议

2).SOAP用于应用程序之间的通信

3).使用SOAP的应用使用HTTP协议通信

4).SOAP独立于平台

5).SOAP独立于编程语言

6).SOAP基于XML

7).SOAP很简单并可扩展

8).SOAP允许绕过防火墙

4.soap的消息交换模型

1)、SOAP结点

     SOAP结点表示SOAP消息路径的逻辑实体,用于进行消息路由或处理。SOAP结点可以是SOAP消息的发送者、接收方、消息中介。

    在SOAP消息模型中,中间方为一种SOAP结点,负责提供发送消息的应用程序和接收方间的消息交换和协议路由功能。中间方结点驻留在发送结点和接收结点之间,负责处理SOAP消息头中定义的部分消息。SOAP发送方和接收方之间可以有0个或多个SOAP中间方,为SOAP接收方提供分布式处理机制。

SOAP协议的深度解析

2).一般,SOAP消息中间方分为两种:

A、转发中间方:转发中间方通过在所转发消息的SOAP消息头块中描述和构造语义和规则,从而实现消息处理。

B、活动中间方:活动中间方利用一组功能为接收方结点修改外部绑定消息,从而提供更多的消息处理操作。


5.soap协议解析

1)、SOAP 消息组成(soap的消息对象包括:)

所有的SOAP消息都使用XML编码,一条SOAP消息就是一个普通的XML文档,文档包括下列元素:

A、Envelope(信封)元素,必选,可把此XML文档标识为一条SOAP消息。

B、Header(报头)元素,可选,包含头部信息(包含了使消息在到达最终目的地之前,能够被路由到一个或多个中间节点的信息,可能会定义认证信息、事务信息、本地信息)。

C、Body(主体)元素,必选,包含所有的调用和响应信息。

D、Fault元素,位于Body内,可选,提供有关处理此消息所发生错误的信息。

E、Attachment(附件)元素,可选,可通过添加一个或多个附件扩展SOAP消息。

SOAP协议的深度解析

所有以上的元素均被声明于针对SOAP封装的默认命名空间中:http://www.w3.org/2001/12/soap-envelope

以及针对 SOAP 编码和数据类型的默认命名空间:http://www.w3.org/2001/12/soap-encoding

6.soap附件:

SOAP消息可以包含XML格式的主SOAP信封,以及包含ASCII或二进制等任何数据格式的SOAP附件。如果SOAP消息包含附件,那么SOAP消息将是一个MIME编码的消息,包含SOAP内容和一个或多个其他类型的附件。因此SOAP消息实际上分为以下两种类型:

A、仅包含XML内容的消息

B、MIME编码的消息,包含初始的XML有效内容以及任何数量的附件。附件可以是任何其他类型的数据。

MIME:Multi-purpose Internet Mail Extensions多用途Internet邮件扩展,是一组技术规范,其目的是使用不同字符集来传递文本,也可以在计算机之间传递各种各样的多媒体数据】

 

7.soap消息绑定:

Web服务的有效负载通常包装在SOAP消息中,而SOAP消息结构由WSDL文档中的SOAP绑定定义确定。不同的调用方式和编码方式通过组合可以产生多种绑定样式,而每种样式的应用场景和对应的SOAP消息结构并不相同。如果没有正确的构造SOAP消息,则无法正确交换服务的有效负载。

SOAP Body提供了一种消息交换的机制,是SOAP消息的实际负载,可包含任意内容。SOAP消息体(SOAP Body)通过绑定服务调用方式(RPC或者Document)封装操作,绑定编码方式(Encoded或者Literal)序列化参数。SOAP消息的绑定样式由style、use和encodingStyle三个属性共同设置。style属性指定服务的调用方式,是采用RPC方式还是Document方式;use属性指定消息的编码方式,是采用Encoded方式还是采用Literal方式;而encodingStyle属性指定具体编码规则,例如可以指定SOAP编码规则、XML Schema编码规则等等,通常情况下都是采用XML Schema。

8.soap的调用过程:

Web service一般就是用SOAP协议通过HTTP来调用它,其实他就是一个WSDL文档,客户都可以阅读WSDL文档来用这个Web service。客户根据WSDL描述文档,会生成一个SOAP请求消息。Web service都是放在Web服务器 (如IIS) 后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来。Web服务器再把这些请求转发给Web service请求处理器。请求处理器的作用在于,解析收到的SOAP请求,调用Web service,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。

SOAP简单的理解,就是这样的一个开放协议SOAP=RPC+HTTP+XML:采用HTTP作为底层通讯协议;RPC作为远程调用途径,XML作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158700.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 传说中的800句记7000词「建议收藏」

    登录 | 注册ZHB_McCoy的专栏目录视图摘要视图订阅一键管理你的代码     攒课–我的学习我做主     【hot】直播技术精选    关闭 传说中的800句记7000词

    2022年4月14日
    33
  • silverlight 播放器,丑丑版

    silverlight 播放器,丑丑版

    2021年8月12日
    44
  • VMware14密钥_vmware密钥14

    VMware14密钥_vmware密钥14VMware虚拟机已升级至14版本,之前的12版本的秘钥已经无法使用,在此分享一下VMwareWorkstation14永久激活密钥:CG54H-D8D0H-H8DHY-C6X7X-N2KG6ZC3WK-AFXEK-488JP-A7MQX-XL8YFAC5XK-0ZD4H-088HP-9NQZV-ZG2R4ZC5XK-A6E0M-080XQ-04ZZG-YF08DZY5H0-D3Y8…

    2022年9月14日
    1
  • python爬虫—–Python访问http的几种方式「建议收藏」

    python爬虫—–Python访问http的几种方式「建议收藏」爬取页面数据,我们需要访问页面,发送http请求,以下内容就是Python发送请求的几种简单方式:会使用到的库urllibrequests1.urlopen2.requests用到requ

    2022年7月3日
    52
  • 机器学习算法(15)之Xgboost算法

    机器学习算法(15)之Xgboost算法前言:前一篇文章对boosting的两个方法做了阐述,这篇文章将会是对前两篇文章的深化,谈的是一个更加优化了的boostIng算法,自从2014年9月份在Kaggle的希格斯玻色子机器学习大赛中夺魁以来,XGBoost与深度学习两个算法垄断了Kaggle大赛的大部分冠军。现在Kaggle大赛的情况基本是这样的,凡是非结构化数据相关,比如语音、图像,基本都是深度学习获胜,凡是结构化数据上…

    2022年4月29日
    48
  • 2021数模美赛A题翻译及思路

    2021数模美赛A题翻译及思路A题懒得看了,不占坑了,可以去看看我EF的思路(还在占坑)问题A:菌类2021美赛A题思路。2021美赛A题解法。2021美赛思路,2021美赛数学建模思路,欢迎加入秀儿为你弹奏东风破:752899821碳循环描述了整个地球地球化学循环中碳交换的过程,是地球生命的重要组成部分。碳循环的一部分包括化合物的分解,使碳得以更新并以其他形式使用。该过程的这一部分的关键组成部分是植物材料和木质纤维的分解。分解木质纤维的一些关键因素是真菌。最近关于真菌通过木材分解的研究文章的作者确定了决定分解速率的真菌性状,并

    2022年5月7日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号