首页IT科技java高频面试题精讲(【Java面试】这也太卷了~面试竟然问,HTTP协议和RPC协议的区别)

java高频面试题精讲(【Java面试】这也太卷了~面试竟然问,HTTP协议和RPC协议的区别)

时间2025-07-30 22:52:22分类IT科技浏览4625
导读:“Http协议和RPC协议有什么区别?”...

Http协议和RPC协议有什么区别?               ”

最近很多人问我这个问题               ,他们都不知道怎么回答               。

今天我们就来了解一下这个问题的高手回答                    。

另外                    ,我把文字版本的内容整理到了一个15W字的面试文档里了      。

大家可以看文章尾端领取           。

下面看看高手的回答

高手:

这个问题我想从三个层面来回答                     。

从功能特性来说         。

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

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

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

其次            ,从实现原理来说   。

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

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

RPC只是一种协议的规范                   ,它并没有具体实现                   ,只有按照RPC通信协议规范实现的通信框架   ,

也就是RPC框架               ,才是协议的具体实现                    ,比如Dubbo            、gRPC等。

因此      ,我们可以在实现RPC框架的时候           ,自定义报文通信的协议规范                     、自定义序列化方式        、自定义网络通信协议的类型等等

因此                     ,从这个层面来说         ,http是成熟的应用协议       ,而RPC只是定义了不同服务之间的通信规范                   。

最后                      ,应用层面来说                   。

http协议和实现了RPC协议的框架都能够实现跨网络节点的服务之间通信   。

并且他们底层都是使用TCP协议作为通信基础               。

但是            ,由于RPC只是一种标准协议   ,只要符合RPC协议的框架都属于RPC框架                    。

因此                      ,RPC的网络通信层也可以使用HTTP协议来实现               ,比如gRPC         、OpenFeign底层都采用了http协议      。

总结

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

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

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

如果喜欢我的作品                   ,记得点赞                    、收藏            、加关注!!!

版权声明:本博客所有文章除特别声明外   ,均采用 CC BY-NC-SA 4.0 许可协议       。转载请注明来自 Mic带你学架构!

如果本篇文章对您有帮助               ,还请帮忙点个关注和赞                    ,您的坚持是我不断创作的动力                      。欢迎关注「跟着Mic学架构」公众号公众号获取更多技术干货!

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
linux设备驱动分类(Linux系统的硬件设备驱动的底层结构讲解) linux 文本编辑工具(Linux中nano和ed文本编辑器的简单使用介绍)