6

编辑我发现问题实际上是php minify。这是发送压缩的内容而不是 Apache。我会找到更多关于这个的。

根据高性能网站,如果我在 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

它返回“压缩”内容。但是当我发送命令时: -

curl -i -H "Accept-Encoding: gzip, deflate" "http://192.168.1.33/s.js" >> e:\curl_log.txt

它返回“放气”的内容。

因此,如果浏览器同时支持 deflated 和 gzipped,则 Apache 发送 deflated。如何告诉 Apache 更喜欢 gzip 而不是 deflate?

供参考: -

  • 我在以下位置找不到任何内容: http ://httpd.apache.org/docs/2.0/mod/mod_deflate.html 。
  • Apache conf 中没有出现 no-gzip。
  • 服务器:Apache/2.2.9 (Win32) PHP/5.2.6
  • FF 发送请求标头为:“Accept-Encoding: gzip, deflate”
4

3 回答 3

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 - 维基百科

于 2011-03-24T09:59:47.107 回答
0

我怀疑你用来测试的任何东西都没有发送......

接受编码:gzip

...在请求标头中。

于 2009-05-18T15:40:14.437 回答
0

有关所有血腥细节,请参见http://httpd.apache.org/docs/2.0/mod/mod_deflate.htmlno-gzip - 您确定在配置中的其他地方没有出现吗?当你改变你的“浏览器”时会发生什么,例如通过使用wget不同的值-U

于 2009-05-18T14:42:15.690 回答