在浏览器中显示PDF时,大多数浏览器会发出多个HTTP请求

在浏览器中显示PDF时,大部分(IE,FF,Safari,Chrome,Opera)是否为PDF文件制作多个HTTP请求? 我正在研究与WebTrends Web Analytics软件集成的问题,并且围绕PDF的统计信息似乎不正确。 支持人员告诉我,由于WebTrends解析Web服务器访问日志以确定流量,下载等,因此确定准确的PDF下载有困难,因为:
当用户点击PDF并且PDF通过Acrobat Reader浏览器插件在用户的浏览器中打开时,每个页面都会一次下载 - 这样做是为了节省带宽,如果用户只查看50页PDF的前2页,只下载前2页。

这听起来很诡异(一个HTTP请求怎么可能只提供二进制文件的一部分?) - 我一直在搜索谷歌,但没有发现任何与此相关的内容。

我会尝试找到一些IE软件,让我明天嗅探HTTP流量,看看我是否可以观察到这种现象。

任何信息/想法虽然赞赏。


如果您的站点像这样返回HTTP响应头:

Accept-Ranges: bytes

PDF阅读器在阅读文档的几KB后将关闭初始连接。 然后它根据Range请求标题的要求请求文档的各个部分,例如:

Range: bytes=242107-244329, 8060-76128

一个URL的例子是http://www.ovationguitars.com/img/OVmanual.pdf。

如果您没有返回Accept-Ranges标头,则PDF文档将被下载到一个请求中(例如http://manuals.info.apple.com/en/iphone_user_guide.pdf)

您可以使用HttpWatch在IE中查看PDF阅读器的行为。

**免责声明:这个答案由HttpWatch的制造商Simtec Limited发布**


截至2016年6月,对于我来说,Firefox和IE11只能打一个电话。

如果没有Content-Disposition标头,Chrome会进行两次通话。 如果缺失,Chrome会执行两次GET,似乎取消第二个GET,并在浏览器中显示PDF。 服务器不知道第二个被取消,并再次发送PDF。

从服务器发送此标头时,Chrome只会进行一次呼叫并启动或保存该文件。

Content-Disposition: attachment

(您也可以建议在用户保存文件时使用的文件名称......)

Content-Disposition: attachment; filename=test.pdf

我的想法是,你已经发现:你的插件不能(也不应该)将PDF分成请求。

我有一个Web应用程序,它可以从请求(单个请求)提供PDF文件并显示在插件中。 它显示整个PDF而不会获得更多信息。

另外,如果你正在寻找一个HTTP嗅探器,你可以尝试Fiddler。 我发现这在网站调试中很有用。

链接地址: http://www.djcxy.com/p/36421.html

上一篇: Do most browsers make multiple HTTP Requests when displaying a PDF from within the browser

下一篇: Embedding pdf and images in html