编辑我发现问题实际上是php minify。这是发送泄露的内容而不是Apache。我会在此找到更多信息。
根据High Performance Web Sites,如果我在Apache 2.x中启用mod_deflate,通过添加以下行,它应该发送gzipped / delfated内容: -
AddOutputFilterByType DEFLATE text/html text/css application/x-javascript
该书还说gzip
比deflate
更有效。
我在httpd.conf中启用了添加相同的行。但Apache发送Content-Encoding: deflate
。
我使用CURL测试: -
curl -i -H "Accept-Encoding: gzip" "http://192.168.1.33/s.js" >> e:\curl_log.txt
返回'gzipped'内容。但是当我发送命令时: -
curl -i -H "Accept-Encoding: gzip, deflate" "http://192.168.1.33/s.js" >> e:\curl_log.txt
它会返回“缩小”的内容。
因此,如果浏览器同时支持deflated和gzip,则Apache发送缩减。如何告诉Apache更喜欢gzip而不是deflate?
仅供参考: -
答案 0 :(得分:2)
我看到原因已经找到了。为了进一步帮助摆脱可能的混淆:
mod_deflate尽管名称目前只支持gzip。
因为以下
deflate - 尽管它的名称应该使用zlib压缩(RFC 1950)(与deflate压缩(RFC 1951)结合使用),如RFC 2616中所述。然而现实世界中的实现似乎在zlib之间有所不同压缩和(原始)放气压缩[3] [4]。由于这种混淆,gzip将自己定位为更可靠的默认方法(2011年3月)。
gzip和zlib是文件/流格式,默认情况下会包围deflate,除此之外还会添加一个校验和,使它们更安全,速度更慢。另一方面,规模的增加不应该引起任何关注。
答案 1 :(得分:0)
有关所有血腥详细信息,请参阅http://httpd.apache.org/docs/2.0/mod/mod_deflate.html - 您确定配置中的其他位置没有出现no-gzip
吗?当您改变“浏览器”时会发生什么,例如:使用wget
使用-U
的各种值?
答案 2 :(得分:0)
我怀疑你用来测试的不是发送......
Accept-Encoding:gzip
...在请求标题中。