XML-RPC和SOAP有什么区别?

我从来没有真正明白为什么一个Web服务实施者会select一个。 XML-RPC通常在旧系统中find? 任何帮助理解这将不胜感激。

区别在哪里?

xml-rpc规范适合1页 6页。 SOAP 1.2规范将花费你500页的权限 44页。

SOAPfunction更强大,并且被软件工具供应商(MSFT .NET,Java Enterprise版本等)所青睐。

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

SOAP更详细,但更有能力。

一些旧的东西不支持SOAP。 例如,没有经典ASP的SOAP库(我可以find)。

SOAP在python中不太受支持。 在标准库中,XML-RPC在python中有很好的支持。

SOAP支持文档级的传输,而xml-rpc更多地是关于值传输的,虽然它可以传输结构,如结构体,列表等。

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

xml-rpc更unixy。 它可以让你简单地做事,当你知道自己在做什么时,即使在使用terminal文本编辑器时,部署高质量的Web服务也是非常快速的。 这样做的SOAP是一个动物园; 你真的需要一个好的IDE来使其可行。

但是,如果您正在争夺“财富”500强IT职位,那么了解SOAP在简历/简历上看起来会更好。

xml-rpc与非ascii字符集有一些问题。

编辑:只是想补充一点,XML-RPC不支持命名参数。 他们必须按正确的顺序。 不确定关于SOAP,但是这样认为。

为了增加其他答案,我鼓励您查看SOAP和XML-RPC调用的实际文本表示,也许可以通过Ethereal捕获。 整个“XML-RPC更简单”的说法在你看到SOAP调用是多么令人难以置信的情况下没有多大意义。 许多相当受欢迎的网站都不愿意使用SOAP作为他们的API,因为如果人们开始广泛使用它,它将消耗大量的带宽。