SOAP 1.1

部署运行你感兴趣的模型镜像

SOAP1.1 - http://www.w3.org/TR/2000/NOTE-SOAP-20000508/


概述

SOAP是基于XML的协议。 SOAP协议由三部分内容组成:

1. SOAP envelope - 定义SOAP的消息格式

2. SOAP encoding rule - 定义SOAP消息的数据类型,以及如何交换类型化的数据内容

3. SOAP RPC representation - 用SOAP表示RPC调用和Response


SOAP消息交换模式

SOAP本质上是一个one-way的消息,但是组合多个SOAP消息可以实现Request/Response或者Multicast模式的消息。SOAP消息要和网络系统配合使用,例如可以利用HTTP协议本身Request/Response的特性来实现SOAP消息的Request/Response。

SOAP消息可以被传递路径上的多个中间节点处理。一个SOAP应用收到SOAP消息后处理原则如下:

1. 确定属于这个应用的SOAP消息所有组成部分

2. 验证所有的必需的消息组成部分都存在并且进行相应的处理。如果消息体有缺失则应该丢弃这个消息。在不影响处理结果的前提下可以忽略可选的消息部分

3. 如果这个处理节点不是消息的最终目的地,SOAP应用应该移除第一步确定的消息组成部分,然后把剩余消息传的给消息路径上的下一个处理节点


SOAP和XML的关系

所有的SOAP消息都是由XML编码的。

一个SOAP应用在生成SOAP消息的时候应该在所有的element和attribute上带上正确namespace。SOAP应用在收到SOAP消息的时候应该可以正确的处理namespace。SOAP应用应该丢弃带有错误namespace的消息。SOAP应用可以处理没有namespace的消息,在这种情况下应该按带有正确的namespace消息处理方式进行处理。

SOAP消息里面不能带有DTD内容,也不能带有和消息处理方式相关的内容。


SOAP Envelope

<SOAP-ENV:Envelop>

<SOAP-ENV:Header>

</SOAP-ENV:Header>

<SOAP-ENV:Body>

<SOAP-ENV:Fault>

</SOAP-ENV:Fault>

</SOAP-ENV:Body>

<SOAP-ENV:OtherElement>

</SOAP-ENV:OtherElement>

</SOAP-ENV:Envelope>


1. SOAP Envelope

- encodingStyle attributre

- There is no version number for SOAP envelope. Namespace is the only place for version validation

2. SOAP Header - header is optional in SOAP message

- actor attribute - define the target node for this header sub element

- mustUnderstand attribte - indicate if the header must be processed

3. SOAP Body

4. SOAP Fault


SOAP Encoding

在定义SOAP1.1的时候XML Schema还没有成为标准,所以SOAP1.1定义了自己的encoding方案,这个方案用到了XML Schema的部分简单数据类型,但是对于复杂数据类型的定义是完全不同的。SOAP Encoding会影响消息的互通性,所以在新的SOAP1.2版本里面可能会作为可选的标准出现。此外WS-I BP也禁止在Web Service中使用SOAP Encoding,并要求使用基于XML Schema的Literal方式。


SOAP HTTP


SOAP RPC

描述如何用SOAP消息表示一个RPC请求和Response:

1. The URI of the target object - 一般和binding的协议有关,比如利用HTTP协议的Request URL作为target object的地址

2. A method name - 用SOAP Body里面第一个子element的名字表示方法名
3. The parameters to the method - 用表示方法名的子element下面的子elements表示输入参数

4. Response message - 用SOAP Body里面的第一个子element表示,element的名字可以为任何值,并不重要
5. The return value - 用表示Response的子element下面的子elements表示返回值。一般返回值做为第一个element,其他out parameters为后续的elements

6. Optional header data - e.g. transaction data



您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

### SOAP 1.1 协议定义与特性 SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在网络应用程序之间交换结构化信息。SOAP 1.1 是该协议的一个重要版本,它在设计时考虑了跨平台和语言的互操作性,并为分布式计算环境中的消息传递提供了标准化的方式。 #### 定义 SOAP 1.1 是一种轻量级的协议,旨在通过互联网实现不同应用程序之间的通信[^1]。它的核心目标是提供一种通用的方法来表示远程过程调用(RPC)以及文档交换。SOAP 消息通常被封装在一个 XML 文档中,这使得它能够跨越不同的操作系统、编程语言和硬件架构进行数据交换。 #### 特性 以下是 SOAP 1.1 的主要特性: 1. **信封结构** SOAP 消息的基本组成部分包括一个必需的 `Envelope` 元素,它是整个消息的根元素。此外,`Header` 和 `Body` 是 `Envelope` 的两个子元素,分别用于携带附加信息和实际的消息内容[^1]。 2. **编码规则** 在 SOAP 1.1 中,定义了自己的编码方案以描述数据的序列化方式。这种编码方案部分依赖于 XML Schema 的简单数据类型,但对复杂数据类型的定义有显著差异。然而,由于 SOAP Encoding 可能影响消息的互通性,因此在后续版本 SOAP 1.2 中被标记为可选标准[^2]。 3. **传输绑定** SOAP 1.1 支持多种传输协议,其中最常见的是 HTTP。它详细描述了如何将 SOAP 消息嵌入到 HTTP 请求和响应中,从而实现跨网络的消息传递[^1]。此外,SOAP 还可以与其他协议(如 SMTP 或 XMPP)结合使用。 4. **RPC 风格支持** SOAP 1.1 提供了对 RPC(远程过程调用)的支持,允许客户端调用远程服务上的方法并接收结果。这种方法通常用于需要严格定义接口的服务场景。 5. **文档风格支持** 除了 RPC 风格外,SOAP 1.1 还支持文档风格的消息传递。在这种模式下,消息的内容被视为一个完整的文档,而不是一组参数。这种方式更适合处理复杂的业务逻辑或大规模数据交换。 6. **互操作性** SOAP 1.1 的设计重点在于确保不同平台和语言之间的互操作性。尽管如此,为了提高兼容性和简化开发流程,Web Services Interoperability Organization (WS-I) 推荐使用基于 XML Schema 的 Literal 方式,而非 SOAP Encoding[^2]。 ```python # 示例:一个简单的 SOAP 请求 from zeep import Client client = Client('http://example.com/wsdl') response = client.service.MyFunction(param1='value1', param2='value2') print(response) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值