当前位置: 首页 > news >正文

手机网站快速建站搜索网站

手机网站快速建站,搜索网站,做单位网站,建网站 多少钱HTTP/2的报文是以二进制桢发送的。那桢格式、桢大小、桢类型是怎么样的?本文会整理桢的格式以及十种桢类型。一、桢格式1.桢格式说明桢的格式由9个字节的桢头和桢数据Payload构成;桢头由3个字节的桢长度、1个字节的桢类型、1个字节的标志位、4个字节的流…

HTTP/2的报文是以二进制桢发送的。那桢格式、桢大小、桢类型是怎么样的?本文会整理桢的格式以及十种桢类型。

一、桢格式

65ae0f283f69b19bac34acdba33cc614.png

1.桢格式说明

桢的格式由9个字节的桢头和桢数据Payload构成;桢头由3个字节的桢长度、1个字节的桢类型、1个字节的标志位、4个字节的流标识符(含1位R保留位)构成。

桢长度
桢长度由24位3个字节大小表示。取值在2^14(16,384)与2^24-1(16,777,215)之间;可在接收方SETTINGS_MAX_FRAME_SIZE设置。

桢类型
桢类型用8位1个字节表示,说明桢的格式和语义。具体桢的类型详见下文介绍。

标志位
标志位用8位1个字节表示。例如:END_HEADERS标志表示头数据传输结束;END_STREAM表示单方向数据传输结束。

R
R即1位保留字段,未定义,以0x0结尾。

流标识符
流标识符用31位表示,上限为2^31。接收方可以根据流标识ID进行组装,同一个Stream中内Frame必须是有序的,所以接受方根据流ID可以拼接成有序的流。另外:客户端发起的流用奇数表识;服务器发起的流用偶数标识。正因为使用了流标识,接收端可以将并发的Stream进行有序拼接,实现多路复用。

桢数据
传输的数据内容Payload由桢类型决定。

2.Wireshark抓包截图

76d12d77df16a200aa2750db0b2d814f.png

二、桢类型

1.DATA桢

数据桢主要存储HTTP/2数据报文,具体格式如下图:

b8a7ee34a5202d8017d262729d0188ad.png

字段含义
Padding: 8位填充字节,填充字节可以改变DATA桢的大小,可以启到安全性功能
Pad Length: 填充字节的长度;PADDED标记为true时表明有填充字节
Data: 具体传输的数据

Wireshark抓包截图

adbf137ab352e9665e79b76afd0aee8c.png

2.Header桢

Header桢的结构如下图:

3ebdd67d7448bba86d96bad0bd12c02b.png

字段含义
Pad Length:填充字节的长度,填充字节含义同上述Data桢
E:表识流是否为独占的。设置PRIORITY时才有值
Stream Dependency:该流的依赖流。设置PRIORITY时才有值
Weight:流优先级权重。设置PRIORITY时才有值
Header Block Fragment:Header块片段
Padding:填充的字节长度

Wireshark抓包截图

4c85da67d4822e4677527fb848912e2d.png

3.PRIORITY帧

发送流的优先级,格式如下,各字段含义与抓包截图见Header桢。

39fdc0a08dcfdc66db28a025ddbcd191.png

4.RST_STREAM帧

当发生错误或者取消时,用于终止一个流。

331a1d1a787384b0127d0426a4a37cd4.png

字段含义
Error Code: 32位错误代码,指发生错误的原因。

Wireshark抓包截图

b4bcd253f471e74badd71dac17b7e2a7.png

5.SETTINGS帧

用于传达连接端点之间的配置参数。
SETTINGS帧的标记ACK为0表示被对等的SETTINGS桢使用;ACK不为0时表示FRAME_SIZE_ERROR的连接错误。

桢格式

3a99669e3c993ea80f18e38538538be7.png

Identifier参数含义
SETTINGS_HEADER_TABLE_SIZE:通知接收方header解码表(解码header块)的最大尺寸
SETTINGS_ENABLE_PUSH:初始值1表示允许服务端推送,0表示不允许服务端推送
SETTINGS_MAX_CONCURRENT_STREAMS:最大的并发流数(发送者)
SETTINGS_INITIAL_WINDOW_SIZE:stream窗口大小,默认为65535
SETTINGS_MAX_FRAME_SIZE:桢负载大小
SETTINGS_MAX_HEADER_LIST_SIZE:Header列表的最大值

Wireshark抓包截图

30d4d845d178ee5c0f863c6ce56e0daf.png

6.PUSH_PROMISE帧

服务端向客户端推送的桢,客户端可以返回RST_STREAM拒绝。
图中R为保留位。

b9199252321f77a61e822128722f91b2.png

7.PING帧

心跳检测,测量发送往还时间,确定连接是否正常。
标记ACK为0即false表示为PING桢的响应(response);1即True表示PING桢。桢格式

6c316ab34f6a03e58f1ee0ee615e77a0.png

Wireshark抓包截图

44ee4c453c987de13c98088a20513500.png

8.GOAWAY帧

用于关闭连接或者发出错误,允许停止接受新的流并完成前面的流处理。桢格式

4dbe7c6a105703560e9584c45b87b64e.png

Wireshark抓包截图

355a914b388ca8d86e541d9f8ce7edb0.png

9.WINDOW_UPDATE帧

用于连接和流的流量控制。

8a2fa1565fe46b953ccdd8007382e235.png

Wireshark抓包截图

4c0ea97523ee4857bbd5bead48fb8ff6.png

10.CONTINUATION

CONTINUATION一种持续桢用于继续传输Header头块片段。通常在Header块比较大,在HEADERS、PUSH_PROMISE、CONTINUATION桢之后继续传输。

3a8162388925fe4732dd505c262ecaae.png

三、小结

通过对二进制桢内容的整理和走查,对HTTP/2通信的各种桢不再陌生,根据桢的类型可以知道通信双方在做什么操作。欢迎跟作者互动、共同探讨。

HTTP/2协议之连接前言【原理笔记】


「瓜农老梁  学习同行」

        4aa1b0f10d456e4bf45c434f380cf2d4.png

http://www.lbrq.cn/news/2587681.html

相关文章:

  • wordpress代码编辑插件seo描述是什么
  • 海外网站如何做用户实名认证对网站和网页的认识
  • 凡科网站内容怎么做效果好自己代理一款手游需要多少钱
  • 个人网站建设设计google搜索引擎下载
  • 做网站联系海口seo快速排名优化
  • 个人网站备案限制八百客crm登录入口
  • html5企业网站开发产品推广
  • wordpress移动端导航百度seo软件曝光行者seo
  • 怎么找做网站平台公司龙岗网站建设公司
  • 江阴做网站哪家好百度关键词排名点击器
  • 庞各庄网站建设公司想做游戏推广怎么找游戏公司
  • 官网网站设计网站ui设计
  • 做全网影视网站的风险app注册推广
  • 四方坪网站建设代写软文公司
  • 单页网站作用是什么新的营销方式有哪些
  • 深圳市建设科技促进中心网站seo网站优化软件
  • 动画设计师是干什么的seo包年优化费用
  • 网站着陆页有多少个今日头条官网登录入口
  • 网站做下子压缩文件的链接网站推广互联网推广
  • 沁阳企业自助建站谷歌搜索引擎google
  • 做网站推广的 什么是开户友情链接的检查方法
  • 开发商城系统app东莞搜索网络优化
  • 和什么人合作做游戏视频网站bt磁力兔子引擎
  • 郑州的做网站公司宁波网站推广专业服务
  • web浏览器阻止activex控件怎么办seo是怎么优化上去
  • 如何加强省市级门户网站的建设视频优化是什么意思
  • 杭州市做网站新闻热点事件2024最新
  • 怎么备份wordpress网站近期新闻热点事件简短
  • 做网站用到哪些软件互联网营销师证书查询入口
  • 网站建设锚点链接网页设计html代码大全
  • curl发送文件bodyParser无法获取请求体的问题分析
  • Apache IoTDB(3):时序数据库 IoTDB Docker部署实战
  • JavaScript:编程世界中的“语盲”现象
  • RAWINPUT避坑指南(涉及GetRawInputData/GetRawInputBuffer)
  • 洛谷 P3870 [TJOI2009] 开关-普及+/提高
  • Text2SQL:如何通过自然语言直接获取数据,打破技术壁垒?