本文是性能优化系列的第二篇,主要从网络的角度来聊聊如何提升网页性能,上篇没看的同学可以先看上一篇:构建优化篇
开启HTTP2主要收益有三:
多路复用:真正意义的使多次请求复用一个TCP链接,降低建连时间二进制格式传输信息:更贴合机器语言,解析更高效,性能更好首部压缩:降低头部体积多路复用在HTTP1.1中,每次TCP连接只能下载一个资源,虽然可以使用长连接来复用tcp连接,但是多次请求无法并发:
1.每请求一个资源就会来一次TCP连接,且有”队首阻塞”问题出现,这样在资源过多的情况下,TCP连接消耗的时间会逐渐增加2.每次发送请求的HTTP头部信息基本相同,造成头部信息冗长,耗费流量3.从获取解析index.html文件到碰撞link、script等标签时,中间流失的时间没有充分利用在HTTP2中:同域名下所有通信都在单个连接上完成,只需要占用一个TCP连接,使用一个连接并行发送多个请求和响应,这样整个页面资源的下载过程只需要一次慢启动,同时也避免了多个TCP连接竞争带宽所带来的问题。单个连接可以承载任意数量的双向数据流,并行交错地发送多个请求/响应,请求/响应之间互不影响。
二进制传输协议H2使用二进制格式传输信息,相比