我是靠谱客的博主 鲤鱼冬天,最近开发中收集的这篇文章主要介绍grpc介绍与通信协议详解简介HTTP2协议GRPC协议参考,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简介

gRPC 是基于 HTTP/2 协议的,要深刻理解 gRPC,就需要理解http/2。既它基于http/2发送,而其编码方式使用protobuf编码,所以我们也需要了解protobuf编码方式

HTTP2协议

HTTP/2 于 2015 年标准化,主要目的是优化性能。其特性如下:

  1. 二进制协议:HTTP/2 的消息头使用二进制格式,而非文本格式。并且使用专门设计的 HPack 算法压缩。
  2. 多路复用(Multiplexing):就是说 HTTP/2 可以重复使用同一个 TCP 连接,并且连接是多路的,多个请求或响应可以同时传输。
    • 对比之下,HTTP/1.1 的长连接也能复用 TCP 连接,但是只能串行,不能“多路”。
  3. 服务器推送:服务端能够直接把资源推送给客户端,当客户端需要这些文件的时候,它已经在客户端了。(该推送对 Web App 是隐藏的,由浏览器处理)
  4. 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协议参考所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部