我们的网站正在向我们的客户提供 pdf 文件。pdf 文件为 25MB,并且是线性化的(快速浏览网页)。我们的网站使用 jsp 页面来传递内容。在初始获取中,我们包含以下标题。关键标头是accept-ranges:bytes。这会通知客户端它可以发送内容的字节范围。
Content-Disposition:inline;filename=List.pdf
Content-Length:27575708
Content-Type:application/pdf
Date:Thu, 16 Feb 2012 03:04:05 GMT
ETag:1.0_2012-02-15
Server:Apache/2.2.3 (CentOS)
accept-ranges:bytes
当 chrome 下载 pdf 时,它会慢慢增加其请求中数据范围的大小。对于 25MB 的文件,将向服务器发出大约 60 个请求。这是我们发送给客户端的响应标头。
Content-Disposition:inline;filename=List.pdf
Content-Length:524288
Content-Type:application/octet-stream
Date:Thu, 16 Feb 2012 03:05:56 GMT
ETag:1.0_2012-02-15
Server:Apache/2.2.3 (CentOS)
accept-ranges:bytes
content-range:bytes 8408895-8933182/27575708
然而,IE 9 只会发送大小为 16KB 的请求。这会导致 300 多个对少量数据的请求,这使得大文件的下载需要很长时间。我的 http 响应中是否缺少某些内容?