【くっきー】

Cookie とは?

最終更新:
💡 Webサイトがブラウザに渡す「小さなメモ」

ブラウザに保存され、条件に合うHTTPリクエストで送信される小さなデータ。ログイン状態の管理やユーザー設定の記憶などに使う。

📌 このページのポイント
保存したデータを、条件に合う通信で送る ブラウザ サーバー ① 要求 ② Set-Cookie ③ 保存 ④ Cookie ⑤ 値を確認 属性やブラウザの設定が 保存・送信の条件になる
HTTPでの一例。ブラウザは保存したCookieを、条件に合うリクエストに付ける。
ひよこ ひよこ
Cookieって何のためにあるの?
ペンギン先生 ペンギン先生
HTTPだけでは前回の通信の状態を覚えていないから、状態を関連づけるために使うんだ。例えばブラウザにセッションIDを保存し、サーバーがそのIDを確認してログイン状態を管理する。Cookie以外の方法もあるよ。
ひよこ ひよこ
保存したCookieは、どのサイトにも送るの?
ペンギン先生 ペンギン先生
違うよ。DomainやPathなどの条件に合うリクエストで送るんだ。SameSiteはサイトをまたぐ送信を制限する属性で、Laxでも別サイトのリンクをたどるGETのようなトップレベルの移動では送る場合があるよ。
ひよこ ひよこ
サードパーティCookieって何?
ペンギン先生 ペンギン先生
訪問中のサイトとは別のサイトの埋め込みコンテンツなどが使うCookieだよ。サイトをまたぐ追跡にも使われるため、ブラウザや設定によって保存・送信が制限される。すべてのブラウザで同じ動作とは限らないんだ。
ひよこ ひよこ
安全のための属性はどう使い分けるの?
ペンギン先生 ペンギン先生
HttpOnlyはJavaScriptからの読み取りを防ぎ、Secureは原則HTTPSで送る。SameSiteはサイトをまたぐ送信を制限してCSRFのリスクを減らすよ。ただしHttpOnlyでXSS自体がなくなるわけではなく、アプリ側の対策も必要なんだ。
ひよこ ひよこ
Cookieはいつ消えるの?
ペンギン先生 ペンギン先生
ExpiresやMax-Ageで期限を設定できるよ。両方あればMax-Ageが優先される。期限を設定しないセッションCookieはブラウザのセッション終了までだけど、セッション復元で残る場合もあるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Cookie」って出てきたら「ブラウザが保存し、条件に合う通信で送る小さなデータ」と思えればだいたいOK!
📖 おまけ:英語の意味
「HTTP Cookie」 = HTTPクッキー
💬 Webの通信で扱う小さなデータを指すよ。サーバーからの応答や、許可される場合にはブラウザ上のJavaScriptで設定できるんだ。

参考資料

← 用語集にもどる