IE だとうまく見えない現象の調査をしてみる修行2
https なページの途中で、フォームの項目をたくさん選ぶと IE で「サーバが
見つかりません」になる。
- Firefox は大丈夫。
- https にする前は大丈夫だった。
- 項目をたくさん選らばなければ大丈夫っぽい。
- 開発サーバでは起こらず、本番サーバで発生した。
- 開発サーバと同じセグメント内の別サーバに移してみたら再現した。
- form の enctype を変えると再現しなくなった。
パケットをキャプって見ると、サーバから RST パケットが送られてきてる。IE と Firefox でその後の動作が違うようだ。なぜ RST パケットが送られてくるのだろう。SSL が定期的にセッションを張りなおしているだけ?
最終的には、サーバ側の Keep Alive のタイムアウト値を 61 秒にしたら発生しなくなったとのこと。IE のデフォルトタイムアウト値が 60 秒なんだと。Apache の側は変更前 15 秒だったそうな。
生きていると思った HTTP のセッションが、サーバ側では破棄していて、それを利用しようとしたら RST パケットを送られて、ということだろうか。IE が自身でタイムアウトを検知すれば、リクエストを投げる前に SSL セッションを張り直すからこの問題が発生しない、と。
本当にこの理解でいいのか。