RPC和HTTP的区别? 📅 2026/7/13 22:20:01 目录一. 概念不一样二. 请求流程不一样2.1 编(解)码层2.2 协议层2.3 网络传输层三. RPC的优势与不足四. RPC和HTTP的使用场景一. 概念不一样RPC对比的是HTTP1和HTTP1.1不包括HTTP2因为HTTP2做了一部分改动性能相比于HTTP1.1已经得到了提升HTTP是应用层协议。RPC是远程调用方式它是调用方式对应的是本地调用。所谓的RPC协议实际上是基于TCPUDP甚至HTTP2改造后的自定义协议。所以有时候说它是一个协议也不能算错很多公司都有自己自定义的RPC协议。二. 请求流程不一样2.1 编(解)码层网络传输前需要结构体转化成二进制数据——序列化在HTTP1.1中序列化协议是JSON。优点非常的直观缺点占的空间大传输速率较慢。在RPC中序列化协议是protobat。优点数据包小 传输速率快序列化与反序列化效率快。2.2 协议层HTTP和RPC都是基于TCP传输都会有消息头和消息体区别在于消息头。HTTP1.1优点灵活可以定义很多字段。缺点包含许多为了适应浏览器的冗余字段这些字段在内部服务其实是用不到的。RPC优点可定制化自定义必要字段即可所以可以摒弃HTTP Header中的冗余字段比如浏览器的各种行为。2.3 网络传输层HTTP和RPC本质都是基于Socket通信。HTTP1.1建立一个TCP长连接设置keep-alive长时间服用这个连接。框架中会引入成熟的网络库给HTTP加连接池保证不只有一个TCP连接可用。RPC建立TCP连接池框架也会引入成熟的网络库来提高性能。gRPC基于HTTP2拥有多路复用优先级控制头部压缩等优势。三. RPC的优势与不足优点1相较于HTTP1.1数据包更小序列化更快传输速率很高。2基于TCP或HTTP2的自定义RPC协议网络传输性能比HTTP1.1更快。3适用于微服务架构微服务集群下每个微服务指责单一有利于多团队的分工合作。缺点1RPC协议本身无法解决微服务集群的问题例如服务发现服务治理等需要工具来保障服务的稳定性。2调用方对服务端的RPC接口有很强的依赖性需要有自动化工具版本管理工具来保证代码级别的强依赖性。例如stup桩文件需要频繁更新否则接口调用方式可能会出错。四. RPC和HTTP的使用场景微服务架构下多个内部微服务调用频繁使用RPC。对外服务单体服务为前端提供的服务适用于HTTP特别是HTTP2性能也很好。