关于Web服务:XML Over HTTP和SOAP over HTTP之间的区别

Difference between XML Over HTTP & SOAP Over HTTP

SOAP over HTTP是HTTP上的XML的一个子集,因为我假设SOAP也是一个向模式(SOAP模式)确认的xml吗? 我假设可以使用GET或POST方法访问XML over HTTP服务。 SOAP over HTTP总是使用POST方法吗? 对于基于HTTP的XML,我假设缺点是必须与所有使用者共享模式文件,而在SOAP over HTTP的情况下,它将是单个WSDL文件。 是否有可能帮助让我知道一方面的差异和优势?


SOAP是XML的一种特殊化,因为它有一个模式,例如http://www.xmlsoap.org/soap/envelope/,而XML则更为通用。

对于使用GET,您可以阅读以下讨论:http://www.coderanch.com/t/463869/Web-Services/java/SOAP-request-HTTP,但基本上SOAP是通过POST完成的,尽管Axis2似乎有支持GET,作为在REST似乎统治的世界中使SOAP工作的一种方式。

而且,根据这篇IBM文章(http://www.ibm.com/developerworks/xml/library/x-tipgetr/index.html),SOAP 1.2引入了GET。

正如您所提到的,SOAP是一种标准,因此有一些工具可以轻松使用它,包括动态客户端生成,如此问题所示,java中的动态代理SOAP Web服务客户端,whansere客户端生成连接时所需的存根。

如果你使用XML而不是http,根据需要可能会更好,作为一种传输数据的方式,但在用例中我可以想到只使用JSON和REST似乎更好,但是,如果你想传输XML或发送XML,然后你可以看看使用REST。

POST是更好的选择,因为GET有大小限制(HTTP GET请求的最大长度?),这可能是SOAP几乎总是POST的原因。

在WCF中,WSDL不一定是单个文件,如果我记得的话,有许多xml文件需要放在一起才能完成WSDL。

优势取决于您的用例,但我发现使用REST并允许用户选择类型是有用的,因为例如,在JSON和XML之间切换可能很简单,并且是基于HTTP的XML的更好选择。 。

在与旧技术集成时,SOAP是最好的,因为它可能是他们可以轻松使用的。例如,当我为SAP集成制作web服务时,根据ABAP程序员的能力,让它不使用SOAP可能会更有效。

您可能会发现以下使用问题:

SOAP和REST如何使用XML / JSON响应?

有关Web服务中的JSON和XML的讨论,您可能会发现这有用:

http://digitalbazaar.com/2010/11/22/json-vs-xml/

我忘记了这个链接,因为他们进行了简短的比较,但最终你可以轻松地支持这两者。在WCF中,我有一个具有业务逻辑的控制器,并且必须使用.aspx文件,一个用于SOAP,一个用于REST,还有一些Web服务支持两者,因为它只是处理请求和响应差异的问题。因此,如果您想为两者提供支持,并且有一个商业案例显示它是有意义的,那么选择一个可以轻松完成的框架。

http://digitalbazaar.com/2010/11/22/json-vs-xml/

基本上,目标是通过网络为客户提供服务。客户将要连接什么?客户如何才能最容易地找到它?请求中传递了多少数据?

这些类型的问题将为您的需求提供最佳解决方案。