RPC 和浏览器/服务器有啥区别?

Posted

技术标签:

【中文标题】RPC 和浏览器/服务器有啥区别?【英文标题】:What's the difference between RPC and Browser/Server?RPC 和浏览器/服务器有什么区别? 【发布时间】:2011-09-09 03:34:40 【问题描述】:

Browser/Server 好像和 RPC 一样,就是 Browser 向 Server 发送请求,

服务端调用相关例程后返回数据。

那么有什么区别呢?

【问题讨论】:

【参考方案1】:

这些是松散相关的概念。 “浏览器/服务器”(通常称为客户端/服务器)表示一种架构,其中您有一个进程监听请求(服务器)和发出请求的进程(客户端)。客户端可能会也可能不会使用 RPC 机制调用服务器。例如,HTTP 是一种不被视为 RPC 的客户端/服务器协议。

RPC表示Remote Procedure Call,即客户端调用代理对象上的方法,代理对象向服务器发送请求。然后,服务器将请求转换为对其目标对象的方法(过程)调用。因此对于客户端来说,它看起来只是在调用服务器对象上的一个方法,但客户端/服务器代码是实现这一点的原因。

【讨论】:

我看不出有什么不同。 如果一个客户端调用一个类似remoteObj.doSomething()的服务器,那么它就是RPC。如果客户端通过以不同方式发送消息来调用服务器,则它不是 RPC。只需将 RPC 视为一种客户端/服务器样式。 所以它只是看起来不同,但本质上是一样的? 本质上不是,两者的基本工作方式存在差异。 取决于你问谁。有些人认为 RPC 是更专业的东西,比如 RMI,但我知道的大多数人认为 SOAP Web 服务之类的东西也是 RPC 的一种形式,并且使用这种技术,您确实知道是否调用了一个过程。【参考方案2】:

但也有一些差异需要考虑:

    RPC 与存根一起工作。客户端调用“client-stub”,后者又调用“server-stub”来调用过程。如果您谈论浏览器服务器,有时也会实现 RPC (RMI) 技术来达到相同的效果。

    另外,调用一个缺点,RPC的调用不是面向连接的。客户端不知道该过程是否实际调用。因此,在不可预知的网络问题的情况下,它可能会失败。 此外,浏览器技术是可靠的,因为它确认(如果实施)服务器中进程的执行(使用 AJAX 等)。

【讨论】:

【参考方案3】:

Rpc 导致一个过程在远程过程中执行。 在客户端服务器中,该过程可以在本地主机或远程位置执行。

【讨论】:

以上是关于RPC 和浏览器/服务器有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

XML-RPC 和 SOAP 有啥区别?

JSON RPC 与 HTTP2 与 grpc 有啥区别?

Java RMI 和 RPC 有啥区别?

微服务间的调用和应用内调用的有啥区别

rpc框架:thrift 和protobuf有啥区别?

从底层的角度来看,Windows 中的命名管道和远程过程调用 (RPC) 有啥区别?