简述
http/2就是超文本传输协议第2版,最初命名为http2.0,主要基于SPDY协议,在请求方法,状态码乃至URI和绝大多数http头部字段等方面保持高度兼容性
通过http2.0优化页面的手段包括
- 对http头字段进行数据压缩(HPACK)
- http/2服务端推送(server push)
- 请求管道化
- 允许设定请求优先级
- 修复了http/1.0以来未修复的问题(比如队头阻塞问题)
- 对数据传输采用多路复用
- 采用二进制来打包,传输数据
2.0支持现有的http应用场景,包括桌面浏览器和移动设备浏览器,网络API,不同规格的网络服务器和正向代理,反向代理服务器软件,防火墙,CDN等。
http2.0与http1.1比较
- http2.0向前进行了兼容,但是借助新特性可以得到更好的速度
- http2.0采用了新的方法来编码,传输客户端和服务端的数据
http2.0与SPDY的比较
- http2.0使用了一份经过定制的基于霍夫曼编码的压缩算法,而SPDY协议用的是动态流压缩算法
- http2.0禁用了很多加密包,以保证基于TLS的连接前向安全
浏览器兼容性
队头阻塞(Head-of-line blocking)
在计算机网络中是一种性能受限的现象,原因是第一个数据包接受受阻,从而导致整个数据包受阻。
SPDY
google主导的http的替代协议,采用了TCP通道,主要关注降低延迟
服务器推送
服务器主动向浏览器提供资源,勿需浏览器端发起请求
请求管道化
将多个http请求批量提交的技术,在发送过程中不需要等待服务端的响应。在高延迟的连接环境下,可以动态提高html网页的加载时间。服务器端应用http1.1协议,必须按客户端的请求顺序恢复请求,所以连接还是先进先出的,就容易造成队头阻塞的问题,而http2.0可能将多个http请求填充在一个tcp数据包中以解决此类问题。
多路复用(多工)
通常表示在一个信道上传输多路信号或数据流的过程和技术,多路复用能够将多个低速信道整合到一个高速信道并进行传输。