ieの場合:
HTTPレスポンス内のexpireを忠実に使用します。従って、「Expires=Mon, 13-Feb-2006 02:52:04 GMT」とあれば、2006/2/13の11:52:04までcookieは有効です。
firefoxの場合:
HTTPレスポンス内のexpireとdateの差を、クライアントのシステム時間に加えてcookieの有効時間を計算しています(結果から予想)。
両者の違い:
例えば、1時間有効のcookieを返した場合、サーバー時間を7日前の2/6にします。すると、(当たり前に)HTTPレスポンスは2/6の1時間後の時間を返します。
ieでは、HTTPレスポンスの時間を忠実に使用するので、クライアント側は2/13のため常にcookieは期限切れになります。
一方、firefoxでは、expireとdateの差(つまり1時間)を求めて、クライアントのシステム時間を基準に計算します。従って、2/13の1時間後の時間となります。
また反対にサーバー時間を7日間進めた場合、HTTPレスポンスは2/20の1時間後を返します。
ieではそのまま使用するため、本来の設定(1時間)より時間のずれ(1週間)の分だけ長くcookieが生きます。
firefoxでは、クライアント時間を基準に計算するため、この場合でも有効時間は1時間です。
検証アプリ⇒cookie.war
むかしのnn4.7もfirefoxと同じだったはず。operaはieと同じだった。
#エンドユーザに優しいのはfirefoxなのか・・・


