Я включил аудио- и видеоплеер (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.
Content-Encoding: gzip
... Когда я пытаюсь воспроизвести с использованием тега ‹audio›, это не работает. С Flash это работает, за исключением того, что не отображается прогресс или длина дорожки. - person Thomas   schedule 13.06.2012