面试题:gRPC与HTTP协议的区别

发布时间:2026/6/11 23:15:59

面试题:gRPC与HTTP协议的区别 一、面试问题请说一下gRPC和HTTP协议有什么区别二、核心概念厘清1. gRPC 本质gRPC不是独立通信协议而是Google开源的高性能RPC框架。底层传输强制基于 HTTP/2.0默认序列化Protobuf二进制定位服务间高性能远程调用2. HTTP 本质通用应用层通信协议是Web通信基础面向客户端-服务器通用交互。三、gRPC 与 HTTP 核心区别对比表对比维度gRPCHTTPRESTful本质定位RPC框架面向服务间调用通用应用层协议面向C/S通信底层传输基于 HTTP/2.0长连接多路复用主流 HTTP/1.1并发需多TCP连接序列化格式Protobuf二进制体积小、速度快JSON文本可读性高、体积大通信模式支持4种一元/服务端流/客户端流/双向流仅支持 请求-响应 单向模式性能表现二进制头部压缩多路复用低延迟文本传输头部冗余HTTP/1.1队头阻塞类型安全强类型编译期校验弱类型依赖约定浏览器兼容原生不支持需gRPC-Web全浏览器原生支持适用场景微服务内部、高并发、实时通信前后端、对外API、通用Web服务四、HTTP/2.0 核心优化gRPC性能基础二进制分帧替换文本格式解析更高效多路复用单TCP连接并行传输解决应用层队头阻塞HPACK头部压缩减少头部冗余降低带宽服务器推送主动推送资源无需重复请求流优先级核心资源优先传输重要说明HTTP/2.0 仅解决应用层队头阻塞TCP层仍存在队头阻塞HTTP/3 基于QUIC彻底解决该问题。五、标准回答gRPC是基于HTTP/2.0的RPC框架HTTP是通用应用层协议。 区别主要有四点 第一定位与场景gRPC专注跨语言服务高性能调用适合微服务、高并发、实时场景HTTP是通用协议适合前后端、对外公开API。 第二底层与性能gRPC基于HTTP/2.0多路复用头部压缩二进制序列化延迟低、并发强HTTP主流用HTTP/1.1JSON头部冗余、存在队头阻塞。 第三通信模式gRPC支持一元、单向流、双向流四种全双工模式HTTP仅支持请求-响应。 第四类型安全gRPC强类型校验提前发现错误HTTP弱类型依赖文档约定。 补充HTTP/2解决应用层队头阻塞TCP层仍阻塞HTTP/3用QUIC彻底优化。六、常见认知误区纠正错误gRPC是独立协议与HTTP并列 →正确gRPC基于HTTP/2.0是框架而非协议错误gRPC使用Protobuf协议 →正确Protobuf是序列化格式传输层是HTTP/2.0错误HTTP/2存在队头阻塞 →正确仅TCP层阻塞应用层已解决错误区别HTTP/2与HTTP/1区别 →正确核心是RPC框架与通用协议的本质差异

相关新闻