4

我了解到,如果我将Range: bytes=n-m标头发送到 HTTP 服务器,我可以下载文件的一部分。

这是否意味着只有在我知道确切的文件长度时才能使用多个线程进行下载?我感到困惑的是,如果我无法Content-Length事先获得,我该如何编写多线程程序?

4

1 回答 1

3

仅当对该文件的完整Range请求的响应(如果您只想检查标头,可以是 HEAD)返回一个Accept-Ranges响应标头的值bytes和一个Content-RangeContent-Length标头都包含有关内容长度的信息(和ETag/或Last-Modified以便文件可以被唯一标识)。

如果根本没有Accept-Ranges响应头,那么你就迷路了。这意味着服务器根本不支持它。

于 2012-04-20T14:07:09.523 回答