HTTP/2
相比于HTTP/1
,可以说是大幅度提高了网页的性能。- 在
HTTP/1
中,为了性能考虑,我们会引入雪碧图、将小图内联、使用多个域名等等的方式。这一切都是因为浏览器限制了同一个域名下的请求数量(Chrome
下一般是限制六个连接),当页面中需要请求很多资源的时候,队头阻塞(Head of line blocking
)会导致在达到最大请求数量时,剩余的资源需要等待其他资源请求完成后才能发起请求。 - 在
HTTP/2
中引入了多路复用的技术,这个技术可以只通过一个TCP
连接就可以传输所有的请求数据。多路复用很好的解决了浏览器限制同一个域名下的请求数量的问题,同时也接更容易实现全速传输,毕竟新开一个TCP
连接都需要慢慢提升传输速度。
在
HTTP/1
中,因为队头阻塞的原因,你会发现发送请求是长这样的
在
HTTP/2
中,因为可以复用同一个TCP
连接,你会发现发送请求是长这样的