在查看我们的 Apache 访问日志时,当用户从我们的服务器下载 PDF 文件时,经常(但并非总是)发生以下情况。URL 首先被请求并以状态 200(ok)和完整的回复大小发送,然后紧接着是来自同一客户端的对同一 URL 的大量请求,具有较小的回复大小和 206(部分回复)状态代码。
换句话说,一些客户端首先成功下载了整个 PDF,然后似乎又下载了大量的“块”文件。
为什么我们会看到这个?
这些是“字节范围”请求(HTTP/1.1 特性),通常由 Adobe Reader 浏览器插件发出。
它们旨在支持能够通过浏览器中的链接访问理论上 50 MB 的 PDF,获取目录,通过 TOC 中的链接访问最后一页或两页,以及读者下载最后几页,给出您可以立即访问所需内容,并在后台继续下载 PDF 的其余部分。
一些 Adobe Reader 版本将此称为“快速网络视图”。
我不确定为什么你会首先看到完整文件大小的完整请求,所以我不确定我是否满意地回答了你的问题。
根据预感,我发现一些进一步的阅读似乎证实了浏览器对文件的原始 HTTP 请求在移交给 Adobe 插件后通常会在后台继续。该插件发出各种字节范围请求,但浏览器的原始请求最终是针对文件的完整大小,因为它不是一开始的字节范围请求。
我不确定 Adobe 是否会将此视为错误。它可以有效地将传输的数据翻倍,但它可以使客户端的“用户体验”“看起来更快/响应更快”。:)
归档时间: |
|
查看次数: |
4487 次 |
最近记录: |