0

我已经包含了一个音频和视频播放器(带有 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,文本/html)响应也是 HTTP/1.0,但不是所有后续的 ajax 请求。

4

1 回答 1

0

问题在于 apache 中的旧配置选项从未从默认配置中删除:

http://blogs.msdn.com/b/ieinternals/archive/2011/03/26/https-and-connection-close-is-your-apache-modssl-server-configuration-set-to-slow.aspx

于 2012-06-14T15:51:04.567 回答