SOAP 1.1、SOAP 1.2、HTTP GET 和 HTTP POST 方法之间的区别是什么?

2022-08-31 13:01:39

我正在为SOAP Web服务编写代码,我想知道SOAP 1.1,SOAP 1.2,HTTP GET和HTTP POST方法的变体,以及其中的首选方法。请提供其使用 URL 或代码的示例。

谢谢


答案 1

SOAP 版本的差异

SOAP 版本 1.1 和 SOAP 版本 1.2 都是万维网联合会 (W3C) 标准。可以部署不仅支持 SOAP 1.1 而且支持 SOAP 1.2 的 Web 服务。对 SOAP 1.2 规范所做的一些 SOAP 1.1 更改非常重要,而其他更改则很小。

SOAP 1.2 规范引入了对 SOAP 1.1 的几项更改。此信息并非旨在深入描述 SOAP 1.1 和 SOAP 1.2 的所有新增功能或更改的功能。相反,此信息突出显示了 SOAP 当前版本之间的一些更重要的差异。

对 SOAP 1.2 规范的重大更改包括以下更新:SOAP 1.1 基于 XML 1.0。SOAP 1.2 基于 XML Information Set (XML Infoset)。XML 信息集(信息集)提供了一种使用 XSD 架构描述 XML 文档的方法。但是,信息集不一定使用 SOAP 1.1 所基于的 XML 1.0 序列化来序列化文档。这种描述 XML 文档的新方法有助于揭示其他序列化格式,如二进制协议格式。可以使用二进制协议格式将消息压缩为紧凑格式,其中可能不需要某些详细的标记信息。

在 SOAP 1.2 中,可以使用绑定到基础协议的规范来确定在基础协议数据单元中使用哪种 XML 序列化。在 SOAP 1.2 - 第 2 部分中指定的 HTTP 绑定使用 XML 1.0 作为 SOAP 消息信息集的序列化。

SOAP 1.2 提供了正式定义传输协议(而不是使用 HTTP)的功能,只要供应商符合 SOAP 1.2 中定义的绑定框架即可。虽然HTTP无处不在,但它不如其他传输(包括TCP / IP和MQ)可靠。SOAP 1.2 提供了 SOAP 处理模型的更具体的定义,该定义消除了许多在缺少 Web 服务互操作性 (WS-I) 配置文件时可能导致互操作性错误的歧义。目标是显著降低使用 SOAP 1.2 实现的不同供应商之间出现互操作性问题的可能性。SOAP with Attachments API for Java (SAAJ) 也可以作为发出 SOAP 请求的简单机制独立存在。SAAJ 规范的一个主要变化是能够表示 SOAP 1.1 消息和其他 SOAP 1.2 格式的消息。例如,SAAJ 版本 1.3 引入了一组新的常量和方法,这些常量和方法更有利于 SOAP 标头元素上的 SOAP 1.2(如 getRole()、getRelay())。SAAJ 的工厂上还有其他方法可以创建适当的 SOAP 1.1 或 SOAP 1.2 消息。对于 SOAP 1.2,信封和编码架构的 XML 命名空间已更改。这些更改将 SOAP 处理器与 SOAP 1.1 和 SOAP 1.2 消息区分开来,并支持 SOAP 架构中的更改,而不会影响现有实现。Java Architecture for XML Web Services (JAX-WS) 引入了同时支持 SOAP 1.1 和 SOAP 1.2 的能力。因为 JAX-RPC 引入了在 SOAP 消息遍历运行时操作 SOAP 消息的要求,所以需要在其适当的 SOAP 上下文中表示此消息。在 JAX-WS 中,对 SAAJ 1.3 的支持带来了许多额外的增强功能。

没有针对特定机器人的difine POST和GET方法....但这里一切都是不同的

获取GET 方法将名称/值对追加到 URL,从而允许您检索资源表示形式。这样做的最大问题是URL的长度有限(大约3000个字符),如果您必须在页面上的表单中提供很多东西,则会导致数据丢失,因此此方法仅在具有少量参数时才有效。

这对我意味着什么?基本上,在大多数情况下,这使得GET方法对大多数开发人员毫无价值。这是另一种查看它的方式:如果表单使用大量参数,或者如果参数包含大量数据,则URL可能会被截断(并且很可能会提供当今以数据为中心的网站)。此外,在URL上传递的参数在浏览器(YIKES!!!)的地址字段中可见,而不是显示任何敏感(甚至非敏感)数据的最佳位置,因为您只是乞求好奇的用户弄乱它。

发布GET 方法的替代方法是 POST 方法。此方法将名称/值对打包在HTTP请求的正文中,这使得URL更清晰,并且对表单输出没有大小限制,基本上它是一个明智的选择。POST也更安全,但肯定不安全。虽然HTTP完全支持CRUD,但HTML 4仅支持通过其各种元素发出GET和POST请求。这种限制使Web应用程序无法充分利用HTTP,并且为了解决这个问题,大多数应用程序都会使POST过载以处理除资源检索之外的所有事情。

链接到原始 IBM 源代码


答案 2

W3C 发布的以下文档还描述了 SOAP 1.1 和 1.2 之间的差异:


推荐