我从来没有真正理解为什么Web服务实现者会选择其中之一。XML-RPC通常在较旧的系统中使用吗?希望能有帮助理解这个问题的内容。
我从来没有真正理解为什么Web服务实现者会选择其中之一。XML-RPC通常在较旧的系统中使用吗?希望能有帮助理解这个问题的内容。
有什么不同之处?
SOAP更强大,并且受到软件工具供应商的青睐(如MSFT .NET,Java Enterprise edition等)。
长期以来(2001-2007左右),SOAP被视为SOA的首选协议。 XML-RPC则不是。REST是新的SOA宠儿,尽管它不是协议。
SOAP更冗长,但功能更强大。
某些较老的软件不支持SOAP。例如,我找不到经典ASP的SOAP库。
Python中不太支持SOAP。XML-RPC在标准库中得到了很好的支持。
SOAP支持文档级传输,而xml-rpc更多地是关于值的传输,尽管它可以传输结构,例如结构体、列表等。
XML-RPC主要用于程序对程序的语言无关传输。它主要通过http / https进行传输。SOAP消息也可以通过电子邮件传输。
xml-rpc更适合Unix系统。使用终端文本编辑器时,可以简单地完成任务,并快速部署高质量的Web服务。使用这种方式进行SOAP是一种动物园;你需要一个好的IDE才能使其可行。
如果您正在争取财富500强IT工作,了解SOAP会让您的简历看起来更好。
XML-RPC在非ASCII字符集方面存在一些问题。
XML-RPC不支持命名参数。它们必须按正确顺序排列。不确定SOAP是否支持,但认为是这样。
除了其他答案外,我还建议您查看使用Ethereal捕获的SOAP和XML-RPC调用的实际文本表示。整个“XML-RPC更简单”的论点在您看到SOAP调用有多么冗长之前并没有太多意义。许多相当受欢迎的网站由于SOAP API需要消耗大量带宽而避免使用SOAP,如果人们开始广泛使用它,这将是一个问题。
Kate Rhodes在http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap上撰写了一篇关于XML-RPC和SOAP区别的优秀论文。