通过HTTP在SOAP和XML之间的区别?

时间:2018-06-24 16:41:50

标签: http soap

我了解到我们可以在xml中编码任何对象,并通过http在发帖请求中发送xml。因此,使用soap有什么额外的优势,以及为什么它很受欢迎。

1 个答案:

答案 0 :(得分:0)

您的问题非常笼统,广泛,因此可能需要就SOAP是否流行及其优缺点进行长时间的讨论/辩论。甚至不确定其重复的问题。

我想尽快回答。

因为SOAP是标准的,因为W3.org接受/发布了SOAP,因此被广泛接受,而XML RPC或仅基于HTTP的XML则不被接受,因此对于组织/服务提供商/开发人员来说不那么受欢迎。

每个Wiki的SOAP

  SOAP(原始简单对象访问协议)是一种消息传递协议规范,用于在计算机网络中实施Web服务时交换结构化信息。其目的是引起可扩展性,中立性和独立性。它使用XML信息集作为其消息格式,并依靠应用程序层协议(通常是超文本传输​​协议(HTTP)或简单邮件传输协议(SMTP))进行消息协商和传输。

根据Wiki的HTTP上的XML

  

XML-RPC是一种远程过程调用(RPC)协议,该协议使用XML对其调用进行编码,并使用HTTP作为传输机制。1“ XML-RPC”也泛指将XML用于远程过程呼叫,与特定协议无关。本文是关于名为“ XML-RPC”的协议的。

因此,HTTP上的XML是SOAP的子集。 意思是,每个SOAP事务也是HTTP / HTTPS上的XML,但是每个HTTP / HTTPS上的XML都不是SOAP。

SOAP示例XML

<?xml version="1.0"?>

<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"
soap:encodingStyle="http://www.w3.org/2003/05/soap-encoding">

<soap:Header>
...
</soap:Header>

<soap:Body>
...
  <soap:Fault>
  ...
  </soap:Fault>
</soap:Body>

</soap:Envelope>

基于HTTP的XML示例:

<array>
  <data>
    <value><i4>1404</i4></value>
    <value><string>Something here</string></value>
    <value><i4>1</i4></value>
  </data>
</array>

我建议您仔细研究更多细节,这两个主题都是广泛的话题,我认为不能100%地解决堆栈溢出问题。