HTTP与RPC的比较

8

RPC协议使用TCP作为底层协议,而HTTP再次使用TCP作为底层协议。那么为什么HTTP被广泛接受呢?

为什么SOAP使用HTTP作为底层协议 - 而不是RPC

2个回答

6
远程过程调用(RPC)不是协议,而是一种原则,它也被用于SOAP中。
SOAP是一个应用协议,使用HTTP进行传输(因此无需考虑编码、消息边界等)。使用SOAP而不是HTTP的原因之一是,对于HTTP,通常不需要防火墙规则,并且HTTP基础设施已成熟并普遍推出。

RPC 确实被称为请求-响应协议。 - tcurdt
由谁提供?维基百科?你知道他们经常会出错吧。RPC协议并不是唯一的;RPC仅描述了在另一个进程(远程的,不一定是在另一台计算机上)中执行过程(代码、函数)的原则。具体如何实现则取决于开发者。 - CodeCaster
我并没有说只有一个RPC协议。但是,“原则”通常仍被称为请求-响应协议。如果你不相信维基百科,可以在谷歌上搜索所有的参考资料。不确定哪些是可信的。无论真相如何,这使得第一句话更具争议性,因为你让它听起来像是事实。你有支持你的观点的来源吗? - tcurdt
协议规定了规则,RPC描述了一种原则。JSON-RPC是一个协议,而RPC本身不是。请向我展示一个可信的来源,我会考虑更新我的答案。 - CodeCaster
1
我不知道你认为哪些来源可信 - 所以这有点无意义。也许对于那些对第一句话持保留态度的人来说,这里的讨论已经足够了。 - tcurdt

5
RPC不需要HTTP。基本上,RPC描述了任何适合远程调用某些代码的机制。用于执行RPC的传输机制可以是通过HTTP的SOAP。它也可以是返回一些JSON数据的REST调用通过HTTP。SOAP也可以通过邮件使用,据我所知(这里不确定),BizTalk服务器应该支持此场景。但即使像尝试在 Avian Carriers 上使用SOAP这样的奇特事情也可以被认为是RPC,尽管后者的延迟可能不足以满足实际应用程序的要求。
将RPC视为向目标发送某种消息,以启动特定操作并在完成操作后(可选)获取一些信息。您选择传输这些消息的特定技术并不重要。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接