Image 大量图像-HTTP/1.1与HTTP/2?

Image 大量图像-HTTP/1.1与HTTP/2?,image,http,request,http2,http-1.1,Image,Http,Request,Http2,Http 1.1,我即将编写的程序需要下载大量高清图像。该程序的想法是拒绝在一个HTTP请求中下载所有这些文件(不可能将所有文件归档到一个文件中)。由于这个原因,程序将一次从服务器请求一个映像。我发现,HTTP/2可以提供帮助,因为它支持多路复用技术。所有HTTP请求将在一个TCP连接上执行。我发现这个网站上的统计数据令人鼓舞:。所提供的下载360幅图像的测试显示了HTTP/1.1和HTTP/2之间的巨大差异。通过本教程,我开始逐步配置Apache服务器(2.4.29版)。每次下载大约300个大小约为1MB的图像

我即将编写的程序需要下载大量高清图像。该程序的想法是拒绝在一个HTTP请求中下载所有这些文件(不可能将所有文件归档到一个文件中)。由于这个原因,程序将一次从服务器请求一个映像。我发现,HTTP/2可以提供帮助,因为它支持多路复用技术。所有HTTP请求将在一个TCP连接上执行。我发现这个网站上的统计数据令人鼓舞:。所提供的下载360幅图像的测试显示了HTTP/1.1和HTTP/2之间的巨大差异。通过本教程,我开始逐步配置Apache服务器(2.4.29版)。每次下载大约300个大小约为1MB的图像,这两个版本的HTTP协议之间的差异可以忽略不计。测试在HTML文件上运行,该文件包含与存储在同一服务器上的图像具有HiperLink的标记

HTTP请求的大小只相差0.1MB,下载时间更长。测试在各种浏览器(谷歌Chrome、Opera、Firefox)上重新运行,结果总是相似的——协议的改变带来了微小的利润。我也尝试过使用“HTTP服务器推送”技术,但这也无助于获得有益的结果


在某些问题上使用HTTP/2协议是一个好的步骤吗?服务器的配置是否不正确?测试环境构建得好吗?

该站点的作者链接到()

HTTP/2允许通过网络以近乎并行的方式进行多个下载,从而更好地利用网络。这对于具有大量小带宽请求的站点来说会产生巨大的影响。这是因为在HTTP/1.1下,TCP连接通常在很长一段时间内处于空闲状态,因为较小的请求会在客户端和服务器之间来回移动,因此您无法充分利用可用带宽。HTTP/2修复了这一问题,以更好地利用带宽

对于带宽受限的站点,HTTP/2的影响较小,因为您正在最大限度地利用带宽,因为在几个请求之后,带宽将被完全利用。因此,HTTP层没有真正的低效。此外,多个HTTP/1.1连接的提升惩罚是值得的,因为您将更多地使用这些连接(不像在典型的网站上,当您打开第6个连接时,您通常只对一个请求使用它,然后再次关闭它)

事实上,HTTP/2在类似于您的场景中可能会对您不利,因为大约100个资源可以并行下载,获得1/100的带宽,因此在HTTP/1.1下以100个批次而不是6个批次进行下载。这意味着可能会有一个很长的延迟,然后会显示100个图像,这时您可能更喜欢按顺序下载图像,所以慢慢地输入。由于这个原因,Chrome按顺序排列优先级,而Firefox则以并行方式工作。我不知道你的应用程序做什么

无耻的插头,但实际上我已经出版了一本关于while的书,如果你想了解更多细节的话:。请参阅我的网站顶部的折扣代码,以获得更便宜的价格


另外,我还想问你为什么要向移动设备发送大量高清图像。这似乎是浪费,尤其是在带宽和存储空间有限的移动设备上。至少,你应该只在移动设备使用WiFi时才这样做,以减少用户产生高成本的可能性。但这与你的问题有点无关(尽管对于较小的“预览图像”,你可能没有带宽限制,因此可能会开始看到HTTP/1.1和HTTP/2之间的差异)。

不可能将它们全部归档到一个文件中
为什么?@tkausl,因为我不清楚是否必须下载它们。有时我不得不下载其中的5个,另一次全部下载,下一次只下载一半。每次归档听起来并不是一个好计划--一个接一个地下载文件相当容易。但是,如果你想只显示实际在视图中的图像,你应该使用延迟加载技术,比如:@ZorgoZ描述的HTML网站只是对协议的简单测试。目标请求将通过移动应用程序发送,重点是快速下载大量大图像。但不是为了渲染它们,而是为了保存它们。我拒绝根据应用程序的请求动态下载它们(需要全部下载)@Andret Ok,这会让你的目标更清晰。流媒体怎么样?在流中在服务器端连接,在客户端拆分。