Cookie


overview

正式名称は HTTP Cookie .

端的に言うと、クライアントに情報を保持することができる仕組み。

JavaScriptやサーバからのHTTPレスポンスにより保持させることができる。
また、JavaScriptならロジックで読み取りが可能で、HTTPサーバ通信の場合は、許可されているCookieを通信の際に自動付与して送信する。

ServerからCookieを設定する場合は、レスポンスヘッダに Set-Cookei を付与することで設定できる。
JavaScriptの場合 document.cookie でアクセスできる。

保持可能情報

# 項目 内容
1 name Cookie名(キー)
2 value Cookieがもつ値
3 Domain 発行元ドメイン
4 Path パス
5 Expires 有効期限
6 max-age 有効期限2(寿命)
7 HttpOnly サーバ送信にしか使えなくする。つまりJavaScriptから見れなくする
8 Secure HTTPS(SSL)通信の場合だけ送信するようにする。
9 SameSite None、Lax、Strictがあり、ドメイン間のCookie参照に関する設定となる
10 Priority 容量による制限でCookieを削除する際に消す際の優先度となる。低いほうから消す。

SameSiteとは?

設定値 効果
Strict Aサイトに対し、Bサイトからどのようなリクエストがあっても、発行したサイトでCookieヘッダーに含めない(Cookieを使用しない)
Lax Aサイトに対し、BサイトからのGETリクエストのみCookieヘッダーへ含める(Cookieを使用する)。これ以外のリクエストは含めない
None Aサイトに対し、Bサイトからどのようなリクエストがあっても、発行したサイトでCookieヘッダーに含める (Cookieを使用する)

有効期限

有効期限など指定しない場合は大体のブラウザがこの挙動となる。
ブラウザ(タブ?)が閉じられない間は保持し続ける。
ブラウザ側でよく出てくる「セッションの復元」をすると復元される。

持続的Cookie

有効期限を設定して設定した場合の挙動。
ブラウザ(タブ?)を閉じたとしても保持し続ける。
有効期限または指定した期間に到達した場合に無効になる。

参考資料