在二进制分帧层上,HTTP2.0会将所有传输信息分割为更小的消息和帧,并对它们采用二进制格式的编码将其封装。
对于相同的数据,不再重新通过每次请求和响应发送。每个新的首部键值对要么追加到当前表的末尾,要么替换表中之前的值
在HTTP1.1中,浏览器客户端在同一时间,针对同一域名下的请求有一定数量的限制。因为HTTP2使用二进制分帧,可以并行交错的发送请求和响应
- 这些请求和响应之间互不影响。
- 只使用一个链接即可并行发送多个请求和响应
- 消除不必要的延迟,从而减少页面加载的时间
- 每个流都可以带有一个31bit的优先值:0表示最高优先级;2的31次方-1表示最低优先级。
- Microsoft Edge(和Internet Explorer)根本不支持优先级
服务端根据客户端的请求,提前返回多个响应,推送额外的资源给客户端。 所有推送的资源都必须遵守同源策略。
# Nginx配置服务器推送
location / {
index index.html index.htm;
http2_push /img/1.jpg;
http2_push /img/2.jpg;
http2_push /img/1.png;
}