可暂停下载如何工作?

可暂停下载如何工作?

我使用 Internet Download Manager (IDM) 下载数据,我注意到它的下载进度窗口会显示下载是否可以暂停(可恢复)。通常,如果连接中断,文件共享网站不允许恢复传输。

那么问题是:它是如何工作的?是在服务器上完成一些配置吗?这与 torrent 下载有何不同,后者的下载始终可以恢复。

答案1

从编码角度来看,下载只是 HTTP 响应流中包含的字节数组。

HTTP 1.1 协议(参见第 30 页)在标头中包含一个名为“范围”的字段,该字段允许请求指定所请求响应的字节偏移量和长度。

因此,从本质上讲,您可以说:“给我这个 URL 上的 HTTP 对象,但我只想要其中的第 1024 到第 4096 个字节”。然后,客户端浏览器将字节流附加到已下载文件的部分。客户端只需检查已下载文件的长度即可知道需要从哪里恢复,然后增加它以确定所需的偏移量。

至于您的下载管理器如何知道,它会发送 HTTP“HEAD”请求。如果响应代码为 206(部分内容),则 http 流支持恢复。

答案2

这可以使用持久性 Cookie,不要与会话 Cookie 或者,如果网站是基于 ASP.NET 构建的,则可以使用 [Viewstate],但这不是一个好的做法。Frank Thomas 给出了最好的答案。

相关内容