【发布时间】:2012-06-13 07:34:09
【问题描述】:
我包含了一个音频和视频播放器(带有 Flash 后备的 html5),它适用于除 IE 之外的所有浏览器。
在寻找问题时,我发现服务器发送“HTTP/1.0 200 OK”和“Connection:close”标头(并且没有 Content-Length),但仅在 IE 中且仅针对某些文件(包括 .swf、 .mp3 和 .mp4)。
我已将以下内容添加到 .htaccess 以禁用这些文件的 gzip:
<IfModule mod_env.c>
SetEnvIfNoCase Request_URI "\.(?:mp3|mp4)$" no-gzip dont-vary
</IfModule>
我没有使用 apache 配置的经验,也不知道为什么要为某些请求使用不同的 http 版本。
这里是发送标头:
GET /test.mp3 HTTP/1.1
Accept */*
User-Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Accept-Encoding gzip, deflate
Host ------
Connection Keep-Alive
和响应头:
HTTP/1.0 200 OK
Date Wed, 13 Jun 2012 07:38:17 GMT
Server Apache/2.2.22 (Unix) mod_fcgid/2.3.6 mod_ssl/2.2.22 OpenSSL/0.9.8g
Last-Modified Mon, 04 Jun 2012 13:15:25 GMT
ETag "1bc12b-596969-4c1a553b51540"
Accept-Ranges bytes
Connection close
Content-Type audio/mpeg
更新:我刚刚发现初始页面请求(PHP、text/html)响应也是 HTTP/1.0 但不是所有后续的 ajax 请求。
【问题讨论】:
-
你在代理后面吗?
-
感谢您的回答。不,但现在在清空缓存后,似乎所有请求都返回 HTTP/1.0 标头。除了有时一两个请求(ajax、xml)是 HTTP/1.1。我找不到任何模式。
-
我刚刚发现 IE 仍然收到
Content-Encoding: gzip标头...当我尝试使用
标签: apache http-headers http-1.1 http-1.0