XML Over HTTP& SOAP over HTTP

时间:2013-09-01 03:19:31

标签: web-services http soap service xmlhttprequest

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

1 个答案:

答案 0 :(得分:22)

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,作为一种让SOAP工作在REST似乎的世界中的方法统治。

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

正如您所提到的,SOAP是一种标准,因此有一些工具可以轻松使用它,包括动态客户端生成,如此问题所示,dynamic proxy soap web service client in java?,客户端生成连接时所需的存根。

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

POST是更好的选择,因为GET有大小限制(maximum length of HTTP GET request?),这可能就是为什么SOAP几乎总是POST。

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

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

与旧技术集成时,SOAP是最佳选择,因为它们可能很容易使用。例如,当我为SAP集成制作web服务时,根据ABAP程序员的能力,让它不使用SOAP可能会有更多的工作。

您可能会发现这个使用问题:

How SOAP and REST work with XML/JSON response?

有关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/

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

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