我SetInputFilter DEFLATE
可以强制 apache 解压缩传入的消息。有没有办法询问 Web 服务器是否支持解压缩传入的请求。我期望为此提供特定的 HEADER 信息。我知道的唯一 HEADER 信息是:accept-encoding(据我所知,用于请求)和 content-encoding(仅告诉客户端响应是否正确编码?)。
答案1
Apache 文档mod_deflate解释得很清楚:
输入解压缩
mod_deflate 模块还提供了用于解压 gzip 压缩请求体的过滤器。为了激活此功能,您必须使用 SetInputFilter 或 AddInputFilter 将 DEFLATE 过滤器插入到输入过滤器链中,例如:
<Location "/dav-area"> SetInputFilter DEFLATE </Location>
现在,如果请求包含
Content-Encoding: gzip
标头,则正文将被自动解压缩。 很少有浏览器能够对请求主体进行 gzip 压缩。但是,一些特殊的应用程序实际上支持请求压缩,例如一些 WebDAV 客户端。
这意味着通过将输入过滤器设置为 DEFLATE,apache 将搜索请求标头Content-Encoding: gzip
,并且仅当存在此标头时才解压缩输入。
答案2
除非另有特别配置,现代浏览器和 Web 服务器会自动处理压缩方案的协商。通常分两步处理,即客户端将公布支持的压缩方案,服务器将使用双方都支持的压缩方案进行回复。
看本文以得到公平对待。
如果你确实想先“检查”它,你可以从服务器获取任何资产,并从响应标头中解析“Content-Encoding”的值