我了解到,如果我向Range: bytes=n-m
服务器发送HTTP头,就可以下载文件的一部分。
这是否意味着只有在我知道确切的文件长度的情况下,我才能使用多个线程进行下载?我困惑的是,如果我不能事先得到Content-Length
,我怎么写多线程程序呢?
发布于 2012-04-20 14:07:10
只有当对该文件的完整请求(如果只想检查报头,则可以是报头)的响应返回一个值为bytes
的Accept-Ranges
响应报头和一个Content-Range
或Content-Length
报头时,发送Range
请求才是可能的,这两个报头都包含有关内容长度的信息(以及ETag
和/或Last-Modified
,以便能够唯一标识该文件)。
如果根本没有Accept-Ranges
响应头,那么您就失败了。这意味着服务器根本不支持它。
https://stackoverflow.com/questions/10247669
复制