【每日一问】RPC 调用和 HTTP 调用的区别

RPC(Remote Procedure Call)调用和HTTP(Hypertext Transfer Protocol)调用是两种不同的通信协议和调用方式,
它们有以下几个主要区别:

  1. 协议:RPC调用是一种协议无关的调用方式,它可以使用不同的传输协议,如TCP、UDP等。而HTTP调用是基于HTTP协议的调用方式。

  2. 数据格式:RPC调用通常使用二进制数据格式来传输数据,如Protocol、Buffers、Thrift等。这些二进制格式可以更高效地序列化和反序列化数据。而HTTP调用通常使用文本格式,如JSON或XML,这些文本格式相对于二进制格式来说会占用更多的带宽和处理时间。

  3. 通信方式:RPC调用通常是面向过程的,类似于本地函数调用。客户端通过调用远程服务的方法,传递参数并获得返回结果。而HTTP调用是基于请求-响应模型的,客户端发送HTTP请求到服务器,服务器处理请求并返回HTTP响应。

  4. 语义:RPC调用通常更加底层和灵活,可以直接调用远程服务的方法,并支持更细粒度的控制和定制。HTTP调用更加高级和通用,适用于Web应用程序中的资源访问和数据交换。

  5. 生态系统:RPC调用通常有自己的生态系统和工具链,如gRPC、Apache、Thrift等。这些工具提供了生成客户端和服务端代码的能力,并提供了各种语言的支持。HTTP调用则是Web开发中广泛使用的标准协议,有丰富的工具和框架支持,如RESTfulAPI和各种Web框架。

需要根据具体的应用场景和需求选择适合的调用方式。RPC调用适用于需要高性能、低延迟和更细粒度控制的场景,而HTTP调用适用于更通用的Web应用程序和资源访问。

知识补充

先说一下他们最本质的区别,就是RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹啦!

OSI网络七层模型

在说RPC和HTTP的区别之前,我觉的有必要了解一下OSI的七层网络结构模型(虽然实际应用中基本上都是五层),它可以分为以下几层:(从上到下)
1、各层解释

2、七层模型和五层模型对应关系

3、每一层工作着不同的设备

4、每层主要的协议

相关推荐
Shota Kishi6 小时前
Solana Shreds 的 UDP 直投架构:Shredstream UDP Forwarding 的设计与实现
网络协议·架构·udp·区块链·solana
玄芯散人14 小时前
【筑基·055】TCP vs UDP:可靠和快速的取舍
网络协议·tcpdump
江畔柳前堤18 小时前
On-Policy Distillation 全景深潜
人工智能·网络协议·目标检测·http·机器学习·chatgpt·重构
157092511341 天前
Android进阶之光:HTTP协议原理深度解析
android·网络协议·http
可爱系程序猿1 天前
WSD 打印机时好时坏:从发现服务、地址变化到 Standard TCP/IP 端口的迁移记录
网络·网络协议·tcp/ip·程序人生·电脑
2501_916008892 天前
全平台抓包工具,Windows、iPhone、Linux三个平台抓包测试
网络协议·计算机网络·网络安全·ios·adb·https·udp
努力的lpp2 天前
【攻击溯源四步法 · 面试讲解稿】
网络·网络协议·安全
cccc卌2 天前
HTTP协议总结
网络·网络协议·http
明月_清风2 天前
MHS:AI Agent 开始连接物理世界
人工智能·后端·网络协议
爱学习的程序媛2 天前
TCP / UDP 协议详解
网络·网络协议·udp·tcp·通信协议