在 HTTP2 协议正式开始工作前, 如果已经知道服务器是 HTTP2 的服务器, 通讯流程如下:

  1. 客户端必须首先发送一个连接序言,其逻辑结构:
    PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n  // 纯字符串表示,翻译成字节数为24个字节
    SETTINGS帧 // 其负载可能为空
  2. 发送完毕序言之后,客户端可以不用等待来自服务器端响应,马上发送HTTP/2其它帧
  3. 服务器端接收到客户端的连接序言之后,需要发送一个SETTINGS帧作为连接序言
  4. 任一端接收到SETTINGS帧之后,都需要返回一个包含确认标志位SETTIGN作为确认
  5. 其它帧的正常传输

 

gRPC  Helloworld 的例子完整的数据包依次如下:

来自Wireshark 的内容。

 

可以看到 18 开始才是正常请求的包。

 

 

参考资料:

 

gRPC over HTTP2

https://github.com/grpc/grpc-common/blob/master/PROTOCOL-HTTP2.md

HTTP/2笔记之连接建立

http://www.blogjava.net/yongboy/archive/2015/03/18/423570.html

gRPC 协议

http://dongliu.net/post/622451

gRPC的通讯过程的更多相关文章

  1. 自学Aruba1.5-Aruba体系结构-Aruba通讯过程

    点击返回:自学Aruba之路 自学Aruba1.5-Aruba体系结构-Aruba通讯过程 1. Aruba通讯过程 Aruba 通讯过程: ①AP连接到现有网络的交换机端口,加电起动后,获得IP地址 ...

  2. https建立通讯过程及运行机制 [转]

    ssl与tls: SSL:(Secure Socket Layer,安全套接字层),为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确 ...

  3. HTTP 网络通讯过程

    1. 网络模型概览 2. HTTP 网络通讯过程 1. 网络模型概览 OSI 先有模型,后有协议,先有标准,后进行实践:而 TCP/IP 则相反,先有协议和应用再提出了模型,且是参照的 OSI 模型. ...

  4. STM32的I2C框图详解及通讯过程

    STM32 的I2C 特性及架构 如果我们直接控制STM32 的两个GPIO 引脚,分别用作SCL 及SDA,按照上述信号的时序要求,直接像控制LED 灯那样控制引脚的输出(若是接收数据时则读取SDA ...

  5. 访问www.baidu.com后会发生什么(一次完整的网络通讯过程)

    1.在浏览器中输入www.baidu.com 这意味着浏览器要向百度发送一个网页数据包,要发送数据包,需要知道对方的IP地址,这里我们只知道网址为www.baidu.com,却不知道IP地址,此时应用 ...

  6. 在HTTP通讯过程中,是客户端还是服务端主动断开连接?

    比如说:IE访问IIS,获取文件,肯定是要建立一个连接,这个连接在完成通讯后,是客户端Close了连接,还是服务端Close了连接.我用程序测模拟IE和IIS,都没有收到断开连接的消息,也就是都没有触 ...

  7. WCF学习笔记(2)-WCF的通讯过程

    一.WCF中的ABC 场景:公司让你送一份合同文件,送文件的过程你可以选择的交通方式有打的,地铁或公交. 到了对方公司后,你要找到某负责人,并且要一份收到合同文件的回执和相应文件 要完成这项工作任务主 ...

  8. 常规RPC通讯过程【转载】

    在 HTTP2 协议正式开始工作前, 如果已经知道服务器是 HTTP2 的服务器, 通讯流程如下: 客户端必须首先发送一个连接序言,其逻辑结构: PRI * HTTP/2.0\r\n\r\nSM\r\ ...

  9. STM32的I2C通讯过程

    使用I2C外设通讯时,在通讯的不同阶段它会对“状态寄存器(SR1 及SR2)”的不同数据位写入参数,通过读取这些寄存器标志来了解通讯状态. 1.主发送器 可使用STM32标准库函数来直接检测这些事件的 ...

随机推荐

  1. 《Python绝技:运用Python成为顶级黑客》 用Python进行取证调查

    1.你曾经去过哪里?——在注册表中分析无线访问热点: 以管理员权限开启cmd,输入如下命令来列出每个网络显示出profile Guid对网络的描述.网络名和网关的MAC地址: reg query &q ...

  2. ZZNU 2055(基姆拉尔森计算公式)

    题目链接 题意: 比如今天是2017年8月16日,星期三.下一个也是星期三的8月16日发生在2023年. 现在是日期是yyyy-mm-dd,我们希望你求出薛定谔会跳跃到那一年. 题解: emmmm.. ...

  3. Storm-kafka源码分析之Config相关类

    要创建一个KafkaSpout对象,必须要传入一个SpoutConfig对象,KafkaSpout的构造函数定义如下: public KafkaSpout(SpoutConfig spoutConf) ...

  4. centos7在分区上建立文件系统和挂载

    在上一篇博客中,我们只说了硬盘的分区,既然进行分区,那么我们就要知道如何使用这些分区,就是接下来的建立文件系统和挂载. mkfs(make filesystem)格式化,建立文件系统 可以看到各种文件 ...

  5. 【洛谷p3994】Highway 二分+斜率优化DP

    题目大意:给你一颗$n$个点的有根树,相邻两个点之间有距离,我们可以从$x$乘车到$x$的祖先,费用为$dis\times P[x]+Q[x]$,问你除根以外每个点到根的最小花费. 数据范围:$n≤1 ...

  6. 剑指offer三十三之丑数

    一.题目 如果一个数的因子中,出去1和本身以外,质数因子只包含2.3和5,则把改数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质数因子7. 习惯上我们把1当做是第一个 ...

  7. 使用json-lib-*.jar的JSON解析工具类

    使用json-lib-2.4-jdk15.jar JSON工具类: import java.util.List; import net.sf.json.JSONArray; import net.sf ...

  8. (转)mysql自增列导致主键重复问题分析

    mysql自增列导致主键重复问题分析...  原文:http://www.cnblogs.com/cchust/p/3914935.html 前几天开发童鞋反馈一个利用load data infile ...

  9. 2018春招-美团后台开发方向编程题 (python实现)

    第一题:字符串距离 题目: 给出两个相同长度的由字符 a 和 b 构成的字符串,定义它们的距离为对应位置不同的字符的数量.如串”aab”与串”aba”的距离为 2:串”ba”与串”aa”的距离为 1: ...

  10. Intellij-怎么避免import.*包,以及import包顺序问题

    Intellij版本 IntelliJ IDEA 2018.1.2 (Ultimate Edition) Build #IU-181.4668.68, built on April 24, 2018 ...