2

HTTPサーバーから返されたCookieが既存のCookieを上書きするのか、新しいCookieを設定するのかを判断しようとしています。

foo.example.comがCookieを設定するとします。

Set-Cookie:SSID = abc; Domain = .example.com; パス=/abc; Expires = Wed、13-Jan-2021 22:23:01 GMT; 安全; HttpOnly

このCookieを上書きし、新しいCookieを作成しないために、bar.example.comが設定する必要のある属性はどれですか。特に、次の応答ヘッダーは元のCookieを上書きします。

Set-Cookie:SSID = xyz; Domain = .example.com; Expires = Wed、13-Jan-1990 22:23:01 GMT;

動作はブラウザ間で一貫していますか?

4

1 に答える 1

2

RFC 6265によると:

ユーザーエージェントが、すでに保存されているCookieと同じCookie名、ドメイン値、およびパス値を持つ新しいCookieを受信した場合、既存のCookieは削除され、新しいCookieに置き換えられます。

このステートメントはRFCに10年以上存在し、言い回しがわずかに変更されただけなので、この動作はすべてのブラウザーで一貫していると思います。

この例では、2つのCookieのパスが異なるため(2番目のCookieはデフォルトで想定'/'されています)、異なるCookieとして扱われます。最初のCookieからのパスにあるページの場合、同じ名前のCookieが2つあるため、RFCに従って次のようにブラウザによって処理されます。

複数のCookieが上記の基準を満たしている場合、それらはCookieヘッダーで順序付けられ、より具体的なPath属性を持つものがより具体的でないものよりも優先されます。

于 2012-10-16T18:08:28.333 に答える