共计 970 个字符,预计需要花费 3 分钟才能阅读完成。
“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 带你学架构
!
如果本篇文章对您有帮忙,还请帮忙点个关注和赞,您的保持是我一直创作的能源。欢送关注同名微信公众号获取更多技术干货!