美文网首页
Http2简单解析-帧格式(三)

Http2简单解析-帧格式(三)

作者: 百花鱼藤 | 来源:发表于2018-03-05 10:20 被阅读0次

 Data帧

      DATA类型的帧包含的字节长度不定。换言之,这些帧包含了请求和发送的对象。如果超出帧容许的最大长度,资源数据会被切分到一个或者多个帧里面去。Data帧结构

Data帧结构

HEADERS帧

HEADER帧用以创建流,并向另一端发送消息首部。

HEADERS帧结构 HEADERS帧字段 HEADERS帧标识位

PRIORITY帧

  发送PRIORITY帧是为了标识流的优先级。它可以多次发送,后面指定的优先级会覆盖之前的。

PRIORITY帧

RST_STREAM帧

  如果要终止一个流,可以将RST_STREAM加在该流的两端。这通常是为了处理某种错误。帧里的Error Code(错误码)字段用来标注重置的原因。

RST_STREAM帧

SETTINGS帧

SETTINGS帧包含了若干有序的键/值对2。键/值对的数量等于帧长度除以单组设置的长度。动态表的最大字节数由 SETTINGS_HEADER_TABLE_SIZE 来控制

SETTINGS帧

PUSH_PROMISE帧

服务端发送PUSH_PROMISE帧来告诉客户端,它将发送一份客户端尚未明确请求的资源。PUSH_PROMISE帧实际上是对客户端发送的HEADERS帧的补充。

PUSH_PROMISE帧 PUSH_PROMISE帧标识

PING帧

PING帧用以计算两端之间的往返时间。此帧有一个标识位ACK(0x1)。如果一端收到一个不带ACK的PING帧,它就必须返回一个PING帧,这个帧必须设置ACK标识,并且包含同样的数据内容(Opaque Data)。需要注意的是,PING帧不属于任何一个流(它们是连接层的),因此它们的流ID要设置为0x0。

PING帧

GOAWAY帧

GOAWAY帧用以礼貌地关闭连接。这是连接层的帧,并且发送时流ID要设置为0x0。通过发送GOAWAY帧,当前端可以清晰地告诉接收端,它接收到了什么、未接收到什么,以及什么原因(如果有的话)导致了GOAWAY。并且Last Stream ID(最后一个流ID)会被设置为曾经处理过的最大的流ID。如果没有错误发生,而当前端要断开连接(浏览器标签页关闭以及连接超时等情况),那就发NO_ERROR(0x0)这个错误码,并且Last Stream ID被设置为231-1。

GOAWAY帧 GOAWAY帧字段

 WINDOW_UPDATE帧

WINDOW_UPDATE帧用来做流量控制——发送方发送WINDOW_UPDATE帧,告诉接收方自己此时期望接收多少字节。流量控制可以应用到单个的流,也可以应用到连接承载的所有流(流ID为0x0)。需要注意的是,在单个流上指定的WINDOW_UPDATE帧也会作用于连接层的流量控制。

WINDOW_UPDATE帧字段

CONTINUATION帧

CONTINUATION帧包含之前的HEADERS、PUSH_PROMISE,或者CONTINUATION帧的附加首部。

CONTINUATION帧 CONTINUATION帧字段 CONTINUATION帧标识位

相关文章

  • Http2简单解析-帧格式(三)

    Data帧 DATA类型的帧包含的字节长度不定。换言之,这些帧包含了请求和发送的对象。如果超出帧容许的最大长...

  • 深入HTTP2 (帧格式)

    h2 的帧 h2 的传输过程中最重要的角色就是帧了。 h2 的其他相关文章深入 HTTP2(帧,消息,流)H2 升...

  • http2的多路复用笔记

    学习笔记 HTTP2采用二进制格式传输,取代了HTTP1.x的文本格式,二进制格式解析更高效。多路复用代替了HTT...

  • 简单讲解一下 http2 的多路复用

    HTTP2采用二进制格式传输,取代了HTTP1.x的文本格式,二进制格式解析更高效。 多路复用代替了HTTP1.x...

  • FFmpeg常用命令

    官网 ffmpeg Documentation 命令格式: 参考:视频压缩:I帧、P帧、B帧 最简单例子: 修改视...

  • 数据解析

    XML数据格式解析 pull解析方式 sax解析方式 JSON 数据格式解析 解析代码很简单,但是还要有APP类,...

  • H264帧格式解析

    https://blog.csdn.net/zhaoyun_zzz/article/details/87302600

  • iOS音频学习三之AudioQueue

    上两篇我介绍了如何用AudioFile和AudioFileStream解析音频格式信息,分离音频帧,我们终于来到了...

  • Http2简单解析-历史(一)

    一、请求分析 1.1从资源获取、页面解析/渲染 资源请求 (1)把待请求URL放入队列; (2) 解析URL中域名...

  • Http2简单解析-协议(二)

    一、描述 HTTP/2大致可以分为两部分:分帧层,即h2多路复用能力的核心部分;数据或http层,h2的分帧层...

网友评论

      本文标题:Http2简单解析-帧格式(三)

      本文链接:https://www.haomeiwen.com/subject/joiffftx.html