失效链接处理 |
HTTP2协议解析及抓包分析 PDF 下载
相关截图:
主要内容:
一 、HTTP2协议简介
1、HTTP2的帧格式
HTTP2的所有帧都是由一个固定的9字节头部(payload之前)和一个指定长度的负载(payload)组成,如
下图所示:
其中, Stream Identifier 用作流控制,用31位无符号整数表示。客户端建立的 sid 必须为奇数,服务端
建立的 sid 必须为偶数,值(0x0)保留给与整个连接相关联的帧(连接控制消息),而不是单个流。
实际上,HTTP2并没有改变HTTP1.x的语义,只是把原来HTTP1.x的 Header 和 Body 部分用 Frame 重新封
装了一层而已。调试的时候浏览器设置会把 HTTP2 的 Frame 自动还原成 HTTP1.x 的格式。两者的帧格式对
比如下图:
2、HTTP2的改进及优点
二进制分帧
帧是客户端和服务端之间通信的最小单位,比起 HTTP1.x 这样的文本协议,二进制协议解析起来更高
效,且没有冗余字段(HTTP1.x 协议每个包都会有重复传输的头部字段),占用带宽少。
多路复用
可以并行交错地发送请求,请求之间互不影响;
可以并行交错地发送响应,响应之间互不干扰;
只使用一个连接即可并行发送多个请求和响应;
消除不必要的延迟,从而减少页面加载的时间;
增加了请求优先级字段,服务器可以根据流的优先级,控制资源分配,而在响应数据准备好之后,将优先级最
高的帧发送给客户端。
增加了服务器推送,服务器可以对一个客户端请求发送多个响应,服务器向客户端推送资源无需客户端明确地
请求。服务器推送通过 PUSH 那些它认为客户端将会需要的内容到客户端的缓存中,避免往返的延迟。比如,
请求 index.html ,但服务器会把 style.css, example.png 等资源也发送给浏览器。
|