【每日一问】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、每层主要的协议

相关推荐
newsxun14 分钟前
从一条国道,到一个时代符号——申晨案例解析:如何打造公路文旅现象级IP「此生必驾318」
网络·网络协议·tcp/ip
Bruce_Liuxiaowei38 分钟前
基于抓包分析的组播视频流故障排查与解决
网络·网络协议·wireshark·信号处理
2501_915909061 小时前
设置了 SSL Pinning 与双向 TLS 验证要怎么抓包
网络·网络协议·ios·小程序·uni-app·iphone·ssl
txinyu的博客2 小时前
HTTPS
网络协议·http·https
筱谙2 小时前
BES BLE低功耗蓝牙技术实现分析
服务器·网络·网络协议
2301_780789663 小时前
2025年UDP洪水攻击防护实战全解析:从T级流量清洗到AI智能防御
服务器·网络·人工智能·网络协议·安全·web安全·udp
Anthony_2314 小时前
二、IP地址与子网划分
服务器·网络·网络协议·tcp/ip·http·https·udp
H_ZMY5 小时前
前端实现 HTTPS 强制跳转与移动端域名自动适配
前端·网络协议·https
徐同保7 小时前
OnlyOffice HTTPS 代理配置总结
redis·网络协议·https
zzZ··*7 小时前
自动登录上海大学校园
python·网络协议·selenium