启用mod_deflate以发送Content-Encoding:gzip

时间:2009-05-18 14:33:57

标签: apache deflate mod-deflate

编辑我发现问题实际上是php minify。这是发送泄露的内容而不是Apache。我会在此找到更多信息。

根据High Performance Web Sites,如果我在Apache 2.x中启用mod_deflate,通过添加以下行,它应该发送gzipped / delfated内容: -

AddOutputFilterByType DEFLATE text/html text/css application/x-javascript

该书还说gzipdeflate更有效。

我在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?

仅供参考: -

3 个答案:

答案 0 :(得分:2)

我看到原因已经找到了。为了进一步帮助摆脱可能的混淆:

  • mod_deflate尽管名称目前只支持gzip。

  • 因为以下

  • ,gzip更“有效”
  

deflate - 尽管它的名称应该使用zlib压缩(RFC 1950)(与deflate压缩(RFC 1951)结合使用),如RFC 2616中所述。然而现实世界中的实现似乎在zlib之间有所不同压缩和(原始)放气压缩[3] [4]。由于这种混淆,gzip将自己定位为更可靠的默认方法(2011年3月)。

gzip和zlib是文件/流格式,默认情况下会包围deflate,除此之外还会添加一个校验和,使它们更安全,速度更慢。另一方面,规模的增加不应该引起任何关注。

另见HTTP_compression - Wikipedia

答案 1 :(得分:0)

有关所有血腥详细信息,请参阅http://httpd.apache.org/docs/2.0/mod/mod_deflate.html - 您确定配置中的其他位置没有出现no-gzip吗?当您改变“浏览器”时会发生什么,例如:使用wget使用-U的各种值?

答案 2 :(得分:0)

我怀疑你用来测试的不是发送......

Accept-Encoding:gzip

...在请求标题中。