禁用Chrome的gzip自动解压缩功能。

6

最近,我遇到了一个关于Chrome的问题,不能正确保存压缩的gzip文件。

这个根源问题在这篇帖子中描述:Downloaded Gzip seems to be currupted (Chrome)

正如链接所述,在Firefox中正确下载文件,因为AJAX响应接收到的blob是gzip编码的,因此正确保存为.gz文件。但是,在Chrome中接收blob数据时,它会自动解压缩,获取纯文本(UTF-8编码)而不是我们寻找的gzip编码。这使得保存的文件损坏了,因为它是将UTF-8编码的blob保存在一个应该被压缩的文件中。

经过一些研究,我终于找到了问题的原因: 显然,当服务器响应中指定content-encoding: gzip头时,Chrome会自动解压缩文件,假设使用gzip压缩的主要原因只是为了节省带宽。这个问题更详细地描述在以下帖子中:Chromium: prevent unpacking tar.gz

在那篇文章中,gzip压缩被启用来包装一个.tar文件,然而在我的情况下,没有一个文件位于gzip压缩之下(我直接在服务器端使用gzip python module编写数据到gzip文件)。因此,当Chrome解压缩gzip时,只有纯文本。我尝试显式地发送响应而不指定content-encoding头,但似乎Chrome自动检测到了编码。

有没有办法禁用Chrome的gzip自动解压缩?


简要澄清:包含简短的解释。希望能有所帮助! - deadlock
不,它不会。 - Zombo
这个有帮助吗?https://dev59.com/m2Ml5IYBdhLWcg3wcmrD#19425303 - dale landry
1个回答

0

答案。将新的自定义头部accept-encoding设置为以下之一:空值或gzip;q=0,deflate;q=0,任何一个都应该可以。


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