我已配置apache 2.4
为在将内容交付给客户端之前对其进行压缩,mod_deflate
并使用客户端标头设置为"Accept-Encoding: gzip"
. 所以我已经开始工作了,生成了一个有效的 gzipped 文件:
curl --header "Accept-Encoding: gzip" https://my.website/ > content.gz
有没有办法允许"Accept-Encoding: zip"
压缩为zip
?
据我了解文档这似乎是不可能的:
gzip 编码是唯一支持以确保与旧浏览器实现完全兼容的编码。不支持 deflate 编码...(https://httpd.apache.org/docs/2.4/mod/mod_deflate.html)
问题来自Windows
无法解压缩gzip
文件的用户(我猜只使用 Windows 本机工具)。
[编辑:正如 gerald-schneider 所指出的,浏览器会自动解压缩内容——但我们正在使用curl
这样的命令行工具来编写 API 脚本,因此不涉及浏览器。也感谢所有其他答案和评论,我想我应该更精确,即写下curl
开始的命令]。
我认为您误解了 HTTP 协议中的压缩的用途。它不适用于下载档案。这是为了减少您在浏览时传输的数据。被它压缩的文件是 HTML、CSS、JavaScripts 和图像。解压缩由浏览器在显示页面之前处理。并且浏览器可以在 Windows 上很好地处理 gzip。
正如问题对 apache 文档的引用所指出的那样,无法将 apache 配置为提供压缩
zip
的内容,mod_deflate
并且客户端的标头设置为Accept-Encoding: zip
. 只gzip
工作。如果用户使用浏览器,该浏览器将即时对其进行解码。如果用户下载内容,例如curl
她必须对gzip
编辑的内容进行压缩,无论是使用操作系统本机工具还是已安装的工具(例如,Windows 用户需要后者)。阅读您的评论,我有点不确定您在问什么:
无论如何,我不确定内容编码是你在这里寻找的......