已经有了http为何还要有rpc?别搞错了

首先,‘已经有了http,为何还要有rpc’这是个很明显的错误问题,根据维基百科我们可以很清楚的查到 rpc(Remote Procddure Call)首次出现在1976年,以“信使报”(Courier)的名义使用,而著名的http协议则是在1989年由欧洲CERN发起,1999年发布RFC 2616 定义了http1.1。所以正确的问法应该是“已经有了rpc,为什么还需要http?”

这其实是一个历史问题了,在最初的时候软件大多是C/S架构各个厂商的软件只需要连接自家的服务器就够了,在这种client to server 的模式下rpc 就很方便了,但是有一个特殊的软件浏览器却不同,浏览器不仅需要访问自家的服务器,还需要访问其它家的服务器,这就是B/S架构。在B/S架构的模式中,需要一个统一browser server的协议,大名鼎鼎的http就是那个年代的标准协议了。

htttp协议和B/S架构的大火,rpc 也就开始逐渐走向低调,一般用于公司内部各个微服务之间的通信,而http协议则走向了前台。

其次在我本人看来 http 和rpc 协议对比,其实还有点不合适,维基百科中讲:分布式计算中,远端程序呼叫(英语:Remote Procedure Call,RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程(无需关注细节)。RPC是一种服务器-客户端(Client/Server)模式,经典实现是一个通过发送请求-接受回应进行信息交互的系统。

但是将RPC和传统的应用层协议http来做对比是不妥当的,在我本人看来 rpc更像是一种标准一个分类,所有符合其标准的都可以成为rpc。当前较为流行的几种rpc 协议大部分使用tcp 或者udp 来实现,但是大名鼎鼎的gRPC则采用的是http2.0。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值