我希望能够在不下载的情况下知道远程文件的大小。我知道有一些解决方案使用" Content-length"标头值,但对于某些链接,此标头丢失。在这种情况下,解决方案是下载整个文件,但是如果文件大于1Gb会发生什么。
下载管理器用于查找远程文件大小的方式是什么?
如果您有任何语言的解决方案,我会接受。谢谢。
答案 0 :(得分:2)
Content-length
是一个可选标头,用于指定HTTP协议中资源的长度。
以下是其中的一些细节:HTTP/1.1: Header Field Definitions - 14.13 Content-Length
基本上,这是值得注意的部分:
应用程序应该使用此字段来指示传输长度 消息体,除非这部分规则禁止 4.4。
4.4 Message Length部分也可以为您提供帮助。
我知道有一些解决方案使用“Content-length”标题但是 对于少数链接,它不存在。
如果服务器没有发送任何类型的Content-Length,则无法确定大小(第4.4节中描述的特殊情况除外)。因此,下载管理器会事先不知道长度,将下载所有内容,直到服务器停止向其提供数据。