IEでダウンロードしたZIPファイルがおかしい(2重に圧縮される)
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にした。
環境
```text
サーバー:
CentOS 5.6
httpd.i386 2.2.3-45.el5.centos.1
クライアント:
Windows7 64bit
Internet Explorer8```
関連記事
- Apacheのログに見慣れぬIPからのアクセスが記録される(SmartScreen フィルター)
- Linux(CentOS5.6)がリブート時に停止してしまう。(shutdown -r 0 時に途中で停止する)