サブドメイン間のCookie送受信の可否とDomain属性の対応

バックエンド

サーバサイドで作成した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)やってます。フォローしてもらえるとうれしいです!

参考記事