【问题标题】:How partial download works in HTTP/2?部分下载如何在 HTTP/2 中工作?
【发布时间】:2019-05-09 09:43:25
【问题描述】:

HTTP/2 非常适合下载多个资源,因为它支持多路复用。 我目前使用的是 HTTP/1.1,我们使用范围标头使用基于范围的下载(多个部分下载)。

我们创建了多个下载连接。

我们计划继续使用 HTTP/2,多路复用在这里有帮助吗,我们可以在单个连接中下载所有部分块吗?

简而言之,我的问题是,

在 HTTP/2 中,我可以在一个连接中获取多个资源,例如 .html、.css、.js 等。同样,我需要在 HTTP/1.1 中使用不同的连接。现在,当我基于范围下载时,在 HTTP/1.1 中它为每个部分创建了多个连接,在 HTTP/2 中,单个文件的所有部分将在一个连接中下载。对吗?

【问题讨论】:

  • 你的目标是什么?表现?多个连接总是至少一样快,而且很可能更快。对于初学者,您可以连接到多个物理服务器。除此之外,如果您有可行的解决方案,那么改变的意义何在?
  • @freakish 性能是一个问题。我试图弄清楚在 HTTP/2 中是否可以使用基于范围的标头进行部分下载。我在互联网上搜索过这个,但没有得到任何与多路复用和基于范围的标题相关的下载。

标签: http


【解决方案1】:

如果您认为多个连接实际上可以加快速度(通常情况并非如此,除非存在数据包丢失或限制),那么您必须在 HTTP/2 中执行相同的操作(HTTP/2 多路复用使用单个 TCP 连接)。

【讨论】:

  • 所以你的意思是说,我可以使用基于范围的标头通过多路复用来下载文件的多个块?
  • 您可以执行与 HTTP/1.1 中相同的操作。一个或多个 TCP 连接。除非限制了单个连接,否则它应该没有任何区别,在这种情况下,您将解决有意的服务器限制。除非我错过了什么。
  • 在 HTTP/2 中,我可以在一个连接中获取多个资源,例如 .html、.css、.js 等。同样,我需要在 HTTP/1.1 中使用不同的连接。现在,当我基于范围下载时,在 HTTP/1.1 中它为每个部分创建了多个连接,在 HTTP/2 中,单个文件的所有部分将在一个连接中下载。对吗?
  • 在 HTTP/1.1 中,您不需要 多个连接。您可以保持连接打开,然后一个接一个地触发请求。 HTTP/2 的不同之处仅在于在单个连接中,您可以同时并行处理多个请求/响应。这并不意味着您必须使用单个连接。
  • 是的,这就是目的,我不想打开多个连接。我想要单个连接和并行请求,我将部分下载单个文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-20
  • 2011-03-26
  • 1970-01-01
  • 2016-09-18
  • 1970-01-01
  • 1970-01-01
  • 2016-03-12
相关资源
最近更新 更多