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を使用する) |
有効期限
Session Cookie
有効期限など指定しない場合は大体のブラウザがこの挙動となる。
ブラウザ(タブ?)が閉じられない間は保持し続ける。
ブラウザ側でよく出てくる「セッションの復元」をすると復元される。
持続的Cookie
有効期限を設定して設定した場合の挙動。
ブラウザ(タブ?)を閉じたとしても保持し続ける。
有効期限または指定した期間に到達した場合に無効になる。