从我的Apache服务器下载Web浏览器不显示下载进度

尽pipe设置了内容长度标题,但Safari / Firefox / Chrome在下载大文件时仅显示不确定的进度条。 任何想法,为什么这可能是? 这是一个标准的Apache 2.2安装。

bash# curl -I http://nodebox.net/download/nodebox2/nodebox-2.0.0.960-setup.exe HTTP/1.1 200 OK Date: Mon, 14 Dec 2009 13:35:04 GMT Server: Apache/2.2.3 (Debian) DAV/2 SVN/1.4.2 mod_python/3.2.10 Python/2.4.4 PHP/5.2.0-8+etch15 mod_ssl/2.2.3 OpenSSL/0.9.8c mod_wsgi/2.3 mod_perl/2.0.2 Perl/v5.8.8 Last-Modified: Mon, 14 Dec 2009 11:54:22 GMT ETag: "11acd74-1e7c1de-ef263780" Accept-Ranges: bytes Content-Length: 31965662 Vary: Accept-Encoding Content-Type: application/x-msdos-program 

“中级进度条”是什么意思? – 它不会显示在下载框中,或只是不显示进度。 它展示的是什么样的大小的文件而不是? 您从testing机器连接到该服务器的速度是多less?

这可能是因为你看到小文件没有任何进展,因为它们很快就会下降,从来没有时间显示它。 即使下载不是即时的,因为这个过程不仅仅是“获取内容” – 这是:

  1. 请求对象(这通常需要非常短的时间,对于HTTP稍微长一些,但是如果服务器或链接繁忙,可能需要更长的时间)
  2. 等待第一个信息下来(这可能需要一段时间,如果这是一个脚本的结果和/或您正在使用mod_gzip或类似的,在这些情况下,Web服务器上的进程可能会一直等到整个脚本完成甚至在发送第一个字节的数据之前)
  3. 传输数据 – 对于小文件,这可能是在一个快速链接上的视觉瞬间(进度条可能不会被绘制,直到第一个字节到达,最后一个字节可能会在几分之一秒内到达),所以进度条在那里走得比你所看到的还要快
  4. 后下载jigger-pokery(AV检查等),这可能需要一段时间取决于您的设置

只有在第3步,你会期望一个进度条,它可能只是快速链接下载时间的一小部分。 一些代理安排可能会加剧这种情况,因为它们可能会缓冲需要几秒(或几十秒,或更多)的较大文件在您的外部networking连接上传输,以使客户端应用程序看到请求熄灭,等待第一个字节(在这段时间内,代理实际上是获取文件),并从代理中一分一秒地获得它(所以上面的步骤3从它的angular度来看是近即时的)。

以上所有内容都是非常通用的 – 您需要为您的问题添加更多的细节和分析以获得更具体的答案。