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

相关推荐
利刃大大7 小时前
【在线五子棋对战】二、websocket && 服务器搭建
服务器·c++·websocket·网络协议·项目
玩转4G物联网8 小时前
零基础玩转物联网-串口转以太网模块如何快速实现与TCP服务器通信
服务器·网络·物联网·网络协议·tcp/ip·http·fs100p
光芒Shine9 小时前
【物联网-ModBus-ASCII】
物联网·网络协议
帽儿山的枪手10 小时前
程序员必掌握的iptables五表五链
linux·网络协议
光芒Shine12 小时前
【物联网-ModBus-RTU
物联网·网络协议
程序员祥云16 小时前
https相比http的区别
网络协议·http·https
熙客17 小时前
应用层协议:HTTPS
网络协议·https
2501_9151063219 小时前
Flutter、React Native 项目如何搞定 iOS 上架?从构建 IPA 到上传 App Store 的实战流程全解析
websocket·网络协议·tcp/ip·http·网络安全·https·udp
snetlogon2021 小时前
JDK17 Http Request 异步处理 源码刨析
android·网络协议·http
还有几根头发呀1 天前
UDP 与 TCP 调用接口的差异:面试高频问题解析与实战总结
网络·网络协议·tcp/ip·面试·udp