概述
简介
gRPC 是基于 HTTP/2 协议的,要深刻理解 gRPC,就需要理解http/2。既它基于http/2发送,而其编码方式使用protobuf编码,所以我们也需要了解protobuf编码方式
HTTP2协议
HTTP/2 于 2015 年标准化,主要目的是优化性能。其特性如下:
- 二进制协议:HTTP/2 的消息头使用二进制格式,而非文本格式。并且使用专门设计的 HPack 算法压缩。
- 多路复用(Multiplexing):就是说 HTTP/2 可以重复使用同一个 TCP 连接,并且连接是多路的,多个请求或响应可以同时传输。
- 对比之下,HTTP/1.1 的长连接也能复用 TCP 连接,但是只能串行,不能“多路”。
- 服务器推送:服务端能够直接把资源推送给客户端,当客户端需要这些文件的时候,它已经在客户端了。(该推送对 Web App 是隐藏的,由浏览器处理)
- HTTP/2 允许取消某个正在传输的数据流(通过发送 RST_STREAM 帧),而不关闭 TCP 连接。
- 这正是二进制协议的好处之一,可以定义多种功能的数据帧。
+-----------------------------------------------+
| Length (24) |
+---------------+---------------+---------------+
| Type (8) | Flags (8) |
+-+-------------+---------------+-------------------------------+
|R| Stream Identifier (31) |
+=+=============================================================+
| Frame Payload (0...) ...
+---------------------------------------------------------------+
- Length:也就是 Frame 的长度,默认最大长度是 16KB,如果要发送更大的 Frame,需要显式的设置 max frame size。
- Type:Frame 的类型,譬如有 DATA,HEADERS,PRIORITY 等。
- Flag 和 R:保留位,可以先不管。
- Stream Identifier:标识所属的 stream,如果为 0,则表示这个 frame 属于整条连接。
- Frame Payload:根据不同 Type 有不同的格式。
GRPC协议
参考
grpc/PROTOCOL-HTTP2.md at master · grpc/grpc (github.com)
gRPC 基础概念详解 - 知乎 (zhihu.com)
[译]gRPC over HTTP2 - 简书 (jianshu.com)
最后
以上就是鲤鱼冬天为你收集整理的grpc介绍与通信协议详解简介HTTP2协议GRPC协议参考的全部内容,希望文章能够帮你解决grpc介绍与通信协议详解简介HTTP2协议GRPC协议参考所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复