RFC 6265 では、ユーザー エージェントは Set-Cookie ヘッダーを受信したときに次のように処理する必要があると規定されています。
ドメイン属性が設定されている場合:
- Cookie のドメインを domain-attribute に設定します。
- Cookie のホストオンリー フラグを に設定し
false
ます。
ドメイン属性が設定されていない場合:
- Cookie のドメインを正規化された要求ホストに設定します。
- Cookie のホストオンリー フラグを に設定し
true
ます。
これはすべて明らかです。混乱は次の段落で発生します。
ユーザー エージェントが、既に保存されている Cookie と同じ Cookie-name、domain-value、および path-value を持つ新しい Cookie を受信した場合、既存の Cookie は削除され、新しい Cookie に置き換えられます。
ドメインで 2 つの Cookie を受け取った例を見てみましょうwww.example.com
。
Set-cookie: name=value
Set-Cookie: name=value; Domain=www.example.com
ドメイン (およびパス) は両方の Cookie で同じになりますが、最初の Cookie のホストオンリー フラグは に設定されtrue
、2 つ目の Cookie は に設定されfalse
ます。
RFC を読むと、2 つの Cookie を比較しても問題ないように見えますが、いずれにしても同等と見なされるべきですが、私の解釈が正しいかどうかはわかりません。
ユーザー エージェントは最初の Cookie を 2 番目の Cookie に置き換える必要がありますか、それとも両方を保存する必要がありますか?