TERM 008
Cookie
ブラウザがサイトへ送り返す、小さな状態
Cookieは、Webサイトがブラウザへ保存を依頼し、条件に合う次回以降のHTTPリクエストで自動送信される小さなデータです。セッション識別や設定保持に使われます。
ブラウザがサイトごとに保持して送信する小さなデータの全体像。
CONTENTSこの記事の目次+
QUICK OVERVIEW
30秒でつかむ
送信範囲
DomainとPathで、どのリクエストへ送るかを限定します。
通信の限定
Secure属性でHTTPS通信にだけ送信させます。
スクリプトから隠す
HttpOnly属性でJavaScriptからの読み取りを防ぎます。
01 — DEFINITION
Cookieとは
何か
Cookieは、Webサイトがブラウザへ保存を依頼し、条件に合う次回以降のHTTPリクエストで自動送信される小さなデータです。セッション識別や設定保持に使われます。
02 — HOW IT WORKS
仕組みを
3段階で見る
細部へ入る前に、入力から結果までの役割を順番に捉えます。
保存を指示
サーバーが値と送信条件をレスポンスへ付ける。
→ブラウザが保持
期限、ドメイン、セキュリティ属性と一緒に保存する。
→条件に合えば送信
後続リクエストのCookieヘッダーへ自動で付ける。
Cookieを理解するときの、最小の処理単位です。
03 — ESSENTIALS
押さえるべき
3つの要点
名前だけでなく、この3点の関係まで理解すると実装へつなげやすくなります。
送信範囲
DomainとPathで、どのリクエストへ送るかを限定します。
通信の限定
Secure属性でHTTPS通信にだけ送信させます。
スクリプトから隠す
HttpOnly属性でJavaScriptからの読み取りを防ぎます。
04 — REAL WORLD EXAMPLE
ログイン状態を維持する
ログイン後、サーバーは推測困難なセッションIDをCookieとして返します。
- 01
セッションIDへSecureとHttpOnlyを付ける
- 02
ブラウザが次回リクエストへ自動添付する
- 03
サーバーがIDからログイン状態を照合する
05 — WATCH OUT
理解するときの
注意点
便利な仕組みほど、守備範囲と失敗の前提を明確にします。
機密情報そのものを置かない
ブラウザに保持されるため、必要最小限の識別子だけを入れます。
CSRF対策を組み合わせる
自動送信される性質を悪用されないようSameSiteやトークンで保護します。
IN ONE SENTENCE
Cookieとは?
ブラウザがサイトごとに保持して送信する小さなデータ。
