Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 通过HTTP2批处理请求_Performance_Http_Tcp_Http2 - Fatal编程技术网

Performance 通过HTTP2批处理请求

Performance 通过HTTP2批处理请求,performance,http,tcp,http2,Performance,Http,Tcp,Http2,如果我们发出一个大型HTTP请求,而不是通过HTTP2发出多个较小的HTTP请求,那么我们的服务器是否有可能获得更好的吞吐量 据我所知,它不会在性能上产生任何显著差异,因为使用HTTP2,我们可以在一个TCP连接上多路传输多个请求。是的,在网络级别,一个大请求比多个小请求更有效。这是由于发出网络请求的开销造成的 这也是为什么在HTTP/1.1下建议将CSS和JavaScript以及图像的spring连接起来,这样发送的数据量是相同的,但请求量要低得多。事实上,由于gzip压缩的工作方式,在发送大

如果我们发出一个大型HTTP请求,而不是通过HTTP2发出多个较小的HTTP请求,那么我们的服务器是否有可能获得更好的吞吐量


据我所知,它不会在性能上产生任何显著差异,因为使用HTTP2,我们可以在一个TCP连接上多路传输多个请求。

是的,在网络级别,一个大请求比多个小请求更有效。这是由于发出网络请求的开销造成的

这也是为什么在HTTP/1.1下建议将CSS和JavaScript以及图像的spring连接起来,这样发送的数据量是相同的,但请求量要低得多。事实上,由于gzip压缩的工作方式,在发送大请求时,数据量通常较小

HTTP/2的设计目的是使HTTP请求的成本大大降低,尽管使用HTTP重新使用单个TCP连接。理论上,这将允许我们放弃连接和spring。但现实却有点不尽如人意——这通常是由于浏览器效率低下,而不是HTTP/2的错误。瓶颈刚刚转移,我们需要为新世界优化浏览器。因此,目前,我们仍然建议大家保持一定程度的专注和精神状态

回到你的问题,是的,它应该在网络级别上有单一的效果,事实上,如果你这样做的话,HTTP/1.1和HTTP/2的性能甚至可能是相似的

但是,在网络级别之外,您可能会发现其他不需要捆绑到更少文件中的原因。例如,如果您有一个大型JavaScript文件,那么浏览器必须等待所有文件下载完毕,然后才能对其进行解析、编译和运行。您最好先下载更小、更重要的JavaScript。与图像精灵类似,在显示单个图像之前,您可能正在等待下载整个精灵文件

然后是缓存的含义。更改一行JS或向image Sprite添加一个图像需要创建一个全新的大文件,这意味着旧文件无法使用,整个文件需要再次完整下载

此外,拥有大文件可能会使实现和管理更加复杂。它们需要一个构建步骤(可能不像许多网站那样大),通过CSS创建和管理图像精灵通常更困难

另外,如果使用它来坚持HTTP/1.1,那么您可能会错过HTTP/2的其他好处,包括和HTTP/2推送(尽管这也比最初想象/希望的要多!)

,而最好的建议(一如既往!)是了解技术并测试,测试,测试