一线大厂面试真题——Http协议和RPC协议有什么区别?

目录

问题解答

面试点评


问题解答

从三个层面来回答

从功能特性来说

    1、http是一个属于应用层的超文本传输协议,是万维网数据通信的基础,主要服务在网页端和服务端的数据传输上。

    2、RPC是一个远程过程调用协议,它的定位是实现不同计算机应用之间的数据通信,屏蔽通信底层的复杂性,让开发者就像调用本地服务一样完成远程服务的调用。

因此,这两个协议在定位层面就完全不同。

,从实现原理来说。

   3、http协议是一个已经实现并且成熟的应用层协议(如图),它定义了通信的报文格式Request Body和Request Header,以及Response Body和Response Header。

也就是说,符合这样一个协议特征的通信协议,才是http协议。

    4、RPC只是一种协议的规范,它并没有具体实现,只有按照RPC通信协议规范实现的通信框架,也就是RPC框架,才是协议的具体实现,比如Dubbo、gRPC等。

因此,我们可以在实现RPC框架的时候,自定义报文通信的协议规范、自定义序列化方式、自定义网络通信协议的类型等等因此,从这个层面来说,http是成熟的应用协议,而RPC只是定义了不同服务之间的通信规范。

后,应用层面来说。

    4、http协议和实现了RPC协议的框架都能够实现跨网络节点的服务之间通信。并且他们底层都是使用TCP协议作为通信基础。

但是,由于RPC只是一种标准协议,只要符合RPC协议的框架都属于RPC框架。因此,RPC的网络信层也可以使用HTTP协议来实现,比如gRPC、OpenFeign底层都采用了http协议。

面试点

这个问题考察频率还挺高的。

网上很多人对这两个协议的理解也是一知半解,说了半天没说明白。

其实只要理解这两个协议本身的特性和背景,就能很轻松的回答出来。

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值