it-swarm.cn

XML-RPC和SOAP之间有什么区别?

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

75
Scott Saad

区别在哪里?

SOAP更强大,并且是软件工具供应商(MSFT .NET,Java Enterprise Edition,等等)的首选。

SOAP很长一段时间(2001-2007)被视为SOA的首选协议。 xml-rpc没那么多。 REST是新的SOA亲爱的,虽然它不是协议。

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

某些较旧的东西不支持SOAP。例如,没有SOAP libs for classic ASP(我能找到)。

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,但请这么认为。

83
Christopher Mahan

只是为了添加其他答案,我建议您查看SOAP和XML-RPC调用的实际文本表示,可能是通过使用Ethereal捕获一个。总的来说,“XML-RPC更简单”的论点在你看到SOAP调用的冗长程度之前没有多大意义。许多相当受欢迎的网站都避免使用SOAP作为他们的API,因为如果人们开始广泛使用它,它将消耗大量的带宽。

12
bmdhacks
4
Dexter