Answers:
从编码角度来看,下载只是HTTP响应流中包含的一个字节数组。
该HTTP 1.1协议(参见第30页)包括在所述报头字段称为“范围”,它允许以指定所要求的响应的字节偏移量和长度的请求。
因此,从本质上讲,您可以说:“在此URL下给我HTTP对象,但我只想要它的第1024个至第4096个字节”。然后,客户端浏览器将字节流附加到已经下载的文件部分。客户端只需检查已经下载的文件的长度即可知道需要恢复的位置,然后增加它的长度以确定所需的偏移量。
至于您的下载管理器如何判断,它会发送一个HTTP“ HEAD”请求。如果响应代码为206(部分内容),则http流支持恢复。
可以使用Persistent cookie进行处理,不要与会话cookie混淆, 或者,如果站点是基于ASP.NET构建的,则可以使用[Viewstate],但这不是一个好习惯。弗兰克·托马斯(Frank Thomas)拥有最佳答案。