XML-RPC和SOAP有什么区别?

时间:2020-03-05 18:57:58  来源:igfitidea点击:

我从来没有真正理解过为什么Web服务实现者会选择一个。通常在较旧的系统中找到XML-RPC吗?在理解这一点的任何帮助将不胜感激。

解决方案

回答

凯特·罗德斯(Kate Rhodes)在http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap上发表了一篇关于差异的出色文章

回答

只是为了增加其他答案,我鼓励我们查看SOAP和XML-RPC调用的实际文本表示形式,也许是通过使用Ethereal捕获一个表示形式。直到我们看到SOAP调用的详细程度令人难以置信时," XML-RPC更简单"这一整体意义才变得没有多大意义。许多相当受欢迎的网站都回避了SOAP作为其API,因为如果人们开始大量使用它,就会消耗大量带宽。

回答

差异?

xml-rpc规范适合1页6页。 SOAP 1.2规范将使我们花费500页,覆盖44页。

SOAP功能更强大,并且是软件工具供应商(MSFT .NET,Java Enterprise Edition之类的东西)更喜欢的。

SOAP长期以来(2001-2007ish)被视为SOA的首选协议。 xml-rpc没那么多。 REST是新的SOA宠儿,尽管它不是协议。

SOAP更冗长,但功能更强大。

在某些较旧的版本中不支持SOAP。例如,没有用于经典ASP的SOAP库(我可以找到)。

python并没有很好地支持SOAP。 XML-RPC在标准库中的python中提供了强大的支持。

SOAP支持文档级传输,而xml-rpc则更多地涉及值传输,尽管它可以传输诸如结构,列表等结构。

xm-rpc实际上是关于程序到程序语言不可知转移的。它主要经过http / https。 SOAP消息也可以通过电子邮件传递。

xml-rpc更统一。它使我们可以简单地做事,并且在知道自己在做什么时,即使使用终端文本编辑器,也可以快速部署高质量的Web服务。那样做SOAP就像是动物园。我们确实需要一个好的IDE使其可行。

但是,如果我们要竞争《财富》 500强IT职位,那么对SOAP的了解会更好。

xml-rpc对于非ASCII字符集存在一些问题。

编辑:只是想补充一点,XML-RPC不支持命名参数。它们必须以正确的顺序排列。不确定SOAP,但请这样考虑。