アドテク_Cookieとドメインについて #496
前回まとめたこちらの記事の続きです。
Cookieとドメインの基本
Cookieがブラウザにセットされる際、どのドメインでセットされたものか記憶しています。これはDomain属性で制御されますが、これを設定しない(デフォルト)場合と設定する場合で挙動が変わります。
Domain属性を設定しない場合
Domainに何も設定しなければ、同一のオリジン(完全なホスト名)でのみ利用可能なCookieとなります。
例えばホスト名が「sub.example.com」で、以下のようにセットしたとします。
Set-Cookie: user_id=12345; Path=/
この場合、ホスト名が完全一致する「sub.example.com」でのみこのCookieは使用可能で、「example.com」や他のサブドメイン(例えばblog.example.com)では使用できません。
Domain属性を設定する場合
そのドメインに加えてサブドメインでも利用可能なCookieとなります。
Domain属性を設定する場合はeTLD+1を使うケースが多いと思いますが、例えば「example.com」を設定した場合、「example.com」はもちろん、「sample.example.com」といったサブドメインでもCookieを使用できます。
Set-Cookie: user_id=12345; Domain=example.com; Path=/
現在のドメインと異なるドメインを指定した場合
Cookieをセットする際、Domain属性に現在のドメインと全く異なるドメインを指定した場合、そのSet-Cookieはブラウザによって無視されます。JavaScriptでセットする場合も同様です。
例えば「example.com」において、Domainに「otherdomain.com」を指定するとその書き込みは無視されます。
Set-Cookie: session_id=abc123; Domain=otherdomain.com; Path=/
また、これに加えてeTLDやTLDを指定することも無効になります(例えば「example.com」において「com」を指定する等)。これは、ブラウザ側のポリシーで、Cookieは「その関連する範囲内」でのみ有効である必要があるためです。
ここまでお読みいただきありがとうございました!
参考
この記事が気に入ったらサポートをしてみませんか?