ども、amo-kです。 今回は、先日RIA的なアプリを作っていて遭遇した 問題について書きます。 IE × SSL × リソースDL 上記が重なった際に生じる問題です。 どうなるかといいますと、 HTTPレスポンスヘッダのキャッシュコントロール系で 意図した動作をしないという問題です。 例えば、
Pragma: no-cache
というレスポンスヘッダを定義していると 逆にcacheファイルを参照しようとするようです。 今回は、HTTPサーバ側でレスポンスの全てを構築していた訳ではありませんでした。 サーバサイドはphpアプリケーションでレスポンスヘッダ/メッセージボディを生成するのですが phpはデフォルトでレスポンスヘッダを生成してくれます。 その際に
Pragma: no-cache
を入れてくれます。 これは嬉しいのですが、 上記IEのバグに対応するには、ヘッダを書き換える必要があります。 ということで以下のようにヘッダを上書きして対応しました。
header("Pragma: ");
一般的には、Webサイトの管理ツールなどで SSL通信による集計ファイルのDLサービス等で 同様の現象が再現し得るでしょう。 JavaScriptじゃないんだし、 phpソースコード中にIEの対応を書くなんてと思いましたが よくよく調べてみると、Microsoftサポートでも公開していたので まあいっかと思った次第です。 参考: Microsoft サポート オンライン