作者:郭绍玲刚珍雅瑜_658 | 来源:互联网 | 2023-05-21 10:11
使用新的HTTP/2协议,重复HTTP请求到同一服务器所产生的开销已大大减少.
考虑到这一点,缩小和连接Javascript/CSS文件以及将图像组合成精灵还有任何显着的性能优势吗?或者,当使用HTTP/2时,这些做法是否不再有用?
1> 小智..:
它们仍然有用.HTTP/2减少了其中一些做法的影响,但并未消除其影响.
缩小仍然像以前一样有用.尽管HTTP/2为消息头引入了新的压缩,但这与缩小(与消息体无关)无关.消息体的压缩算法是相同的,因此缩小可以节省与以前一样多的带宽.
连接和精灵的影响比以前更小,但它们仍会产生一些影响.与下载,而不是与HTTP/1,单个文件的多个文件最大的问题是不实际的HTTP端问题,本身:有是在单独请求每个文件中的一些基于带宽的开销,但它是由基于时间的相形见绌完成一个文件后拆除TCP/IP会话的开销,然后为下一个文件启动一个新文件,并为要下载的每个文件重复此操作.
HTTP/2的最大焦点是消除基于时间的开销:HTTP/1.1尝试使用流水线操作,但它没有在浏览器中流行(Presto是唯一完全正确的引擎,Presto是死).HTTP/2是另一种尝试,它改进了HTTP/1.1的方法,同时也使这种事情变得非可选,并且它会更加成功.它还通过压缩标头消除了在发出多个请求时的一些基于带宽的开销,但它无法完全消除这种开销,并且在下载多个文件时,仍然必须进行这些请求(作为单个TCP/IP会话的一部分) ,所以开销较少,但不是零.因此,虽然连接和精灵的影响成比例地减小,但仍然会产生一些影响,特别是如果您使用许多文件.
在连接和spriting方面,要考虑的另一件事是压缩.类似类型的连接文件倾向于比单个文件更好地压缩,因为压缩算法可以利用连接的数据片段之间的相似性.类似的原则适用于精灵:将相似图像放在同一文件的不同区域通常会产生较小的文件,因为图像的压缩可以利用不同区域的相似性.