DEFLATE 在 IE9 中不起作用

Swi*_*ftD 5 web-server mod-deflate deflate apache-2.2

我在堆栈溢出上发布了这个,但有人建议我在这里可能会有更多的运气:

我之前没有使用 deflate 对网页进行编码,所以这对我来说是新的领域,但是当我查看 ff 中的网络流量时,我的 all.js 文件现在从 427kb 变为 117kb,所以我似乎可以在这里使用它。但是在IE9中没有变化。我的响应头说 Content-Encoding: gzip in FF but not IE9

这是我的.htaccess:

<ifModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>
Run Code Online (Sandbox Code Playgroud)

IE9 中 all.js 的请求头:

   Key  Value
Request GET /all.js HTTP/1.1
Accept  application/javascript, */*;q=0.8
Referer http://www.alexchapman.co.uk/
Accept-Language en-GB
User-Agent  Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding gzip, deflate
Host    static.alexchapman.co.uk
Connection  Keep-Alive
Cache-Control   no-cache
Run Code Online (Sandbox Code Playgroud)

IE9 中 all.js 的响应头:

Key Value
Response    HTTP/1.1 200 OK
Date    Tue, 28 Feb 2012 15:53:41 GMT
Server  Apache/2
Last-Modified   Tue, 28 Feb 2012 15:53:40 GMT
Accept-Ranges   bytes
Cache-Control   private
Expires Fri, 02 Mar 2012 03:53:41 GMT
Keep-Alive  timeout=15, max=100
Connection  Keep-Alive
Transfer-Encoding   chunked
Content-Type    text/javascript
Run Code Online (Sandbox Code Playgroud)

Firefox 中 all.js 的请求标头:

Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en-gb,en;q=0.5
Cache-Control: no-cache
Connection: keep-alive
Cookie: DELETED - this should not be sent and isnt sent with IE
Host: static.alexchapman.co.uk
Pragma: no-cache
Referer: http://www.alexchapman.co.uk/
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
Run Code Online (Sandbox Code Playgroud)

Firefox 中 all.js 的响应头:

Accept-Ranges: bytes
Cache-Control: private
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/javascript
Date: Tue, 28 Feb 2012 15:55:26 GMT
Expires: Fri, 02 Mar 2012 03:55:26 GMT
Keep-Alive: timeout=15, max=100
Last-Modified: Tue, 28 Feb 2012 15:55:26 GMT
Server: Apache/2
Transfer-Encoding: chunked
Vary: Accept-Encoding
Run Code Online (Sandbox Code Playgroud)

需要明确的是,这不仅仅发生在 all.js 中 - 我已经将其用作示例,因为它是将从压缩中受益的最大文件。任何关于我做错了什么的建议将不胜感激。

**********更新************

我的托管服务提供商回复我并说他们可以确认 gzip 和 deflate 都已启用并在我的网站上工作,他们说 Internet Explorer 的问题特定于该浏览器,因此我建议尝试兼容模式,因为这是不是由我们的服务器造成的。

我知道 IE 中的兼容性视图,这应该有助于正确呈现旧站点,所以我不知道它们在这里是什么,我可以确认这对文件压缩没有影响。

Swi*_*ftD 2

我想我已经弄清楚这里发生了什么。我下载了 Wireshark 并通过它检查了网络流量。我对此很挣扎,但我想我现在已经明白了——如果有人能确认我已经正确完成了这件事,那就太好了。

\n\n

以文件 all.js 为例,我在 Firefox 和 IE9 中跟踪请求的 tcp 流。两人都表示他们正在使用 gzip 加密。有趣的是,谈话的总规模是不同的。即9 \xe2\x80\x93 268471字节FF-120812字节(均小于未压缩文件)。

\n\n

这大约是 firebug 中报告的正确文件大小。但只是 IE 开发工具中报告的文件大小的一半。因此,看起来不仅 IE 在 gzip 方面更差,而且它的开发人员工具错误地报告说它比实际情况更差。\n如果有人可以验证此结果或提出解释,我会接受他们的答案。

\n