サーバサイドで作成したCookieをサブドメイン間で送受信するケースにおいて、Cookie作成時のドメインオプションがCookie送受信へ与える影響について紹介します。
ドメインオプションと作成されるCookieのDomain属性の対応表
api.example-dev.com
というドメイン名のサーバと、web.example-dev.com
というドメイン名のブラウザ(フロントエンド)でCookieの送受信をするケースを考えます。
このとき、サーバサイドでCookieを作成する際に指定するドメインオプションと、ブラウザのCookieにセットされるDomain属性の対応は以下の通りです。
ドメインオプション | Set-Cookie有無 | Domain属性 |
---|---|---|
無 | 有 | api.example-dev.com |
example-dev.com | 有 | .example-dev.com |
.example-dev.com | 有 | .example-dev.com |
api.example-dev.com | 有 | .api.example-dev.com |
web.example-dev.com | 無 | N/A |
hoge.com | 無 | N/A |
ドメインオプションとCookie送受信に関するまとめ
上記の結果をまとめると以下のようになります。
- ドメインオプションを指定しない場合、サーバのドメインがDomain属性になる
- ドメインオプションを指定する場合、作成されるDomain属性の接頭辞にはドットがつく
- ドメインオプションを指定する場合、ドメインオプションの接頭辞のドットは無視される
- サーバと一致しないドメインをドメインオプションに指定した場合、Cookieは送られない
さいごに
Twitter(@nishina555)やってます。フォローしてもらえるとうれしいです!