javascript - 禁用 Chrome 的 gzip 自动解压

标签 javascript google-chrome gzip tar

最近在处理Chrome上的一个问题这使得无法正确保存压缩的 gzip文件。
这篇文章描述了根本问题:Downloaded Gzip seems to be currupted (Chrome)
如链接中所述,该文件已在 Firefox 中正确下载,因为 AJAX 中的 blob接收到的响应是 gzip 编码的,因此正确保存为 .gz文件。但是当Chrome接收到blob数据时,会自动解压,得到纯文本(UTF-8编码)而不是gzip我们正在关注的编码。这使得保存的文件被破坏,因为它被保存为 UTF-8应该被 gzip 压缩的文件中的编码 blob。
经过一番研究,我终于找到了问题的原因:显然当content-encoding: gzip在服务器响应中指定了 header,Chrome 会自动解压文件,假设使用 gzip 的主要原因是压缩,只是出于节省带宽的目的。这个问题在以下帖子中有更详尽的描述:Chromium: prevent unpacking tar.gz
在那个帖子中 gzip启用压缩以包装 .tar文件,但是在我的情况下,gzip 压缩下没有文件(我使用 gzip 直接将数据写入服务器端的 gzip python module 文件)。因此,当 Chrome解压 gzip ,只有纯文本。我试图明确发送响应而不指定 content-encoding header ,但似乎 Chrome 会自动检测编码。
无论如何我可以禁用Chromes的gzip自动解压?

最佳答案

回答。将新的自定义 header 接受编码设置为:空值或。 gzip;q=0,deflate;q=0 应该可以工作。

关于javascript - 禁用 Chrome 的 gzip 自动解压,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68112512/

相关文章:

javascript - 在 Chrome/Mac 上强制 DOM 重绘/刷新

android - 移动浏览器上的锁定屏幕方向

java - 在 Java 中使用 GZIP 和 UDP 处理大量字符串的最快方法

javascript - JavaScript 如何比较作为参数传入方法的对象?

javascript - 如何按给定的比例因子放大 Javascript 数组?

javascript - 如何在不覆盖整个页面的情况下将值从一个 php 传递到另一个?

javascript - 为什么在使用 Live Editor 时 Brackets(代码编辑器)会打开一个新的 Chrome 实例?

css - 如何使用 Gzip 文件作为链接

bash - 将 tcpdump 输出写入压缩/gziped 文件

javascript - 使用 ng new 创建一个新的 Angular 项目