共计 504 个字符,预计需要花费 2 分钟才能阅读完成。
1、改成二进制协议,每次传输二进制帧,帧有以下几个字段
类型 type,长度 length,flag,StringID 流标志,Payload 负载,最基础的两种类型 HEAD 类型和 DATA 类型
2、多路复用,可以在一个连接上,同时传输多个数据流,每个流的传输顺序是固定的,按先后到达拼接
3、支持优先级,通过权重
4、支持重置中断,在 HTTP/1.1 中,如果一个请求发出去了,在没有发送完的情况下,是不好取消的,只能断开这次的 TCP 连接,但是断开重连有有点费时,HTTP2 可以发送一个 RST_STREAM 帧,表示取消这次请求传输,后面重新开始传
5、头部压缩,大部分的请求头部都是相似的,尤其类似 cookie 这些信息,有时候占比很重,可以压缩
6、支持服务端推送,服务端在响应客服端请求 A 资源时,预估可能马上也会用到 B 资源,服务端可以把 B 资源发送给客户端,当然前提是客户端显示的告知服务端,客户端允许这种推送,并且最终客户端有决定权是否接受,如果不接受,可以发送一个 RST_STREAM 帧取消
7、支持流量控制,支持客户端和服务端沟通彼此的数据窗口大小
文章同步发布:https://www.geek-share.com/de…
正文完