HTTP2.0的基本单位为二进制帧
HTTP1.0利用文本与服务器交互,而HTTP2的基本协议单位为二进制帧流,每帧都有自己的类型旨在实现不同功能,然而HTTP1将继续存在,因此,HTTP2的二进制帧流需映射到HTTP1上以实现向下兼容。
HTTP2.0这么多新特性就是因为底层数据格式的改变:
- length:表示Frame Payload部分的长度,其FrameHeader固定为9字节共72比特
- type:区分Frame Payload部分是HTTP Header还是HTTP Body
- Flags:8位,每一位都起标记作用,表示这个帧的类型
- R:保留位
- Stream Identifier:帧流ID,当开始建立连接时,先发送一个Stream ID=0的流来最初始化工作,之后从1开始发送请求/响应。
HTTP2.0中帧具有优先级
HTTP2帧具有优先级,允许客户端提供排序思路,以让服务器优先处理一部分请求,仍然是以二进制帧的形式返回数据。每个Frame Header中都有一个表示此Frame的 Stream ID,通过stream ID表示可以使所有的请求和响应同时在一条TCP连接上进行,当流并发时,流会有优先级,图片的优先级低于css文件或者js文件的优先级&