IEで突然セッションCookieが消える

これはちょっとハマりました。
画面を操作していると、当然セッションに格納した情報が無くなる、という態になったのですが、IEがセッションCookieを送信してくれないため、サーバ側では新たなセッションとして認識されてしまっていました。


これは、Cookieの仕様によるものです。IEでは、以下のようになっているそうです。

    1. 少なくとも 300 の Cookie
    2. 少なくとも(Set-Cookie ヘッダーの構文説明で non-terminal Cookie を構成する文字のサイズによって計測される) Cookie につき4096 バイト
    3. 一意のホストまたはドメイン名につき少なくとも 20 の Cookie

私の場合は、「3」に引っかかっていました。

それでですね、固定Cookieが上記の制限に引っかかると、どうやら、セッションCookieが削除されるようなのです。

でも、これってIEの仕様バグだと言いたい!
古い順から固定Cookieを削除してくれればいいのに、何もセッションCookieを消さなくてもいいのでは!?


回避策としては、Cookieを保存するJavaScriptなどで、保存の仕方を工夫するしかないですね。

http://support.microsoft.com/kb/306070/ja