如何禁用HTTP请求头中的范围选项?

5

在使用谷歌浏览器下载PDF文件时,我收到了来自服务器的206状态响应。经过查阅RFC文档,我发现客户端是通过添加范围头来进行有条件的GET请求。是否有办法在发出请求时禁用范围头或者使用其他浏览器是解决方案?

2个回答

1

请确保mod_headers已启用,然后将以下内容添加到您的Apache配置文件中:

<Files *.pdf>
    Header set Accept-Ranges none 
</Files>

你遇到的问题是Chrome浏览器中已经被记录的错误:当用户在整个PDF文件没有完全下载前尝试保存该文件时,生成的文件将会损坏。此修复程序可防止Chrome对文件进行部分请求。

1
你正在使用什么服务器?
这是有关mod_headers的Apache文档。 你可以将Accept-Ranges标头设置为none。

http://httpd.apache.org/docs/2.2/mod/mod_headers.html

尝试在httpd.conf文件中设置“Accept-Ranges none”。 服务器中还必须加载mod_headers模块。 此外,当使用Chrome或Adobe插件等(其他插件)请求PDF或经常流式传输的文件时,它们将始终尝试使用Range:0-进行GET请求,并尝试对文件进行部分请求以向用户显示内容(如果PDF很大,则为PDF的前几页),并管理下载,因此服务器将用206状态响应。

那么我们需要在服务器的httpd.conf文件中添加语句“Accept-Ranges: none”吗? - user3155354
PDF文件很大吗?当文件很大或连接不好时,服务器会抛出206状态。通常浏览器会获取206并为您分段管理下载。您是否尝试过换一个浏览器以防万一? - SaintJob 2.0
如果服务器上的“Accept-Ranges”功能处于活动状态,则文件可以分部下载(通常在服务器提供大文件时处于活动状态)。 - SaintJob 2.0
忘了说服务器必须加载mod_headers模块。 - SaintJob 2.0
明白了。请取消注释这行代码:LoadModule headers_module modules/mod_headers.so - user3155354
显示剩余26条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接