2

我希望能够在不下载远程文件的情况下知道它的大小。我知道有一些解决方案使用“Content-length”标头值,但对于某些链接,此标头丢失。在这种情况下,一个解决方案是下载整个文件,但是如果文件大于 1Gb 会发生什么情况。

下载管理器使用什么方式来找出远程文件的大小?

如果您有任何语言的解决方案,我会接受。谢谢你。

4

1 回答 1

2

Content-length是一个可选的标头,它指定 HTTP 协议中资源的长度。

这里有一些细节:HTTP/1.1: Header Field Definitions - 14.13 Content-Length

基本上,这是值得注意的部分:

应用程序应该使用这个字段来指示消息体的传输长度,除非这被第 4.4 节中的规则禁止。

4.4 节消息长度也应该对您有所帮助。

我知道有一些使用“Content-length”标头的解决方案,但对于少数链接它不存在。

如果服务器不发送任何类型的 Content-Length,则无法确定大小(4.4 节中描述的特殊情况除外)。因此,下载管理器不会事先知道长度,并且下载它获得的所有内容,直到服务器停止向它提供数据。

于 2012-04-26T07:11:38.883 回答