apacheで稼働しているWEBサーバーから、InternetExplorer8 でZIPファイルをダウンロードすると、
2回圧縮されており、
1度目は ****extracted
これをさらに解凍すると、元のファイルが出てくる状態となった。
Firefox,GoogleChromeともにこういう現象は起こらない。
どうやら、apacheのOutputFilter DEFLATE の設定が影響しているようだ。


このapacheはOutputFilterにDEFLATEを指定していて、

SetOutputFilter DEFLATE
DeflateCompressionLevel 5
AddOutputFilterByType DEFLATE text/html text/plain text/xml

DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%) %{User-agent}i' deflate

となっている。


テキスト等のコンテンツを圧縮送信するように設定されているのだが、
このとき、ZIPも一回圧縮されてしまっている模様。
たぶん、HTTP1.1の圧縮の仕様だとおもうのでZIPがさらに一回圧縮されてクライアントが受信しても、
クライアントブラウザが1回は解凍しているので問題なさそうだが、
IEはNGのようだ。

対策としては、
・ZIPにDEFLATEをかけない。
・DEFLATEをOFFにする
であるが、あまり帯域を気にするサイトでもないため、DEFLATEをOFFにした。

環境

サーバー:
 CentOS 5.6
 httpd.i386  2.2.3-45.el5.centos.1
クライアント:
 Windows7 64bit
 Internet Explorer8