Cookie
要点
- Cookieは、サーバーがブラウザに預けておく小さなデータで、以降のリクエストで自動的に送り返されます。
- サイト自身が発行する「ファーストパーティCookie」と、他サイトが発行する「サードパーティCookie」があり、後者はプライバシー保護の観点から年々規制が強まっています。
- 規制強化を受けて、Web Storageやトークンベースの認証など、Cookieに頼らない代替手段への移行も進んでいます。
Cookie概要
Cookieは、サーバーからの指示でブラウザに保存される、小さなテキスト形式のデータです。一度保存されると、同じサイトへの次回以降のリクエストで、ブラウザが自動的にサーバーへ送り返します。
保存
自動送信
受信・確認
この「発行→保存→自動送信」という一往復の仕組みが、ログイン状態の保持や、ショッピングカートの中身の記憶など、様々な用途の土台になっています。
ぽち先生のヒントお店のスタンプカードに似ているよ。会計時にスタンプを1つ押してもらい(発行)、それを財布に入れて持ち帰るよね(保存)。次に来店したときにカードを見せれば(送信)、お店側は「常連さんだ」とすぐ分かってくれるんだ。
ファーストパーティCookieとサードパーティCookie
Cookieには、今見ているサイト自身が発行する「ファーストパーティCookie」と、そのサイトに埋め込まれた広告・解析タグなど、別ドメインが発行する「サードパーティCookie」があります。
サードパーティCookieは、利用者がどのサイトを訪れたかを横断的に追跡できてしまうため、プライバシー保護の観点から近年多くのブラウザで制限が強まっています(詳しくは後ほど見ていきます)。
ぽち先生のヒントファーストパーティCookieは「そのお店自身のスタンプカード」、サードパーティCookieは「色々なお店に共通で置いてあるポイントカード」に似ているよ。共通カードだと、運営会社にはどのお店を回ったかが筒抜けになってしまうよね。
Cookieヘッダー
Cookieのやり取りは、サーバーからのレスポンスに付く「Set-Cookie」ヘッダーと、ブラウザからのリクエストに付く「Cookie」ヘッダーという、2種類のヘッダーによって行われます。
Set-Cookie:
session_id=abc123→保存
Cookie:
session_id=abc123受信・確認
1つのブラウザに保存されたCookieは、そのブラウザから同じサイトへ送るすべてのリクエストに、この「Cookie」ヘッダーとして自動で付いていきます。これが「ログインしたまま画面を移動できる」体験の裏側です。
Cookie属性
Set-Cookieヘッダーには、有効期限や安全性を制御するための「属性」を付け加えられます。代表的なものは次のとおりです。
「ログイン状態を保持する」チェックボックスの有無は有効期限の違いで実現されていることが多く、サードパーティCookieの制限強化には、このあと見ていく「SameSite」属性が深く関わっています。
ぽち先生のヒントSecureは「鍵付きの車でしか運ばない」、HttpOnlyは「荷物の中身を運転手以外は見られないようにする」ようなイメージだよ。どちらも大切なCookieを途中で盗み見られないための工夫なんだ。
主なCookieの用途
Cookieは、次のような幅広い用途で使われています。
Cookieの制限は年々厳しくなっている
特にサードパーティCookieによる行動追跡は、プライバシー保護の観点から問題視されており、主要ブラウザや法制度による制限が年々強化されています。
この流れを受けて、Webサイト側では、Cookieだけに頼りすぎない仕組みへの移行が進んでいます。
ぽち先生のヒント昔は自由に配れた「チラシ」が、今は「事前に許可を取らないと配れない」ようになってきた、というイメージだよ。プライバシーへの意識が高まったことで、ルールがどんどん厳しくなっているんだ。
Cookieの代替手段
Cookieに頼らない、あるいは補完する仕組みとして、次のような手段が使われるようになっています。
ただし、これらの代替手段にもそれぞれ制約があり、Cookieが完全になくなるわけではありません。用途に応じて使い分けることが重要です。
まとめ
Cookieは、Set-Cookie/Cookieヘッダーによって発行・保存・送信される、Webサイトが利用者を識別するための基本的な手段です。ファーストパーティとサードパーティの違いや、有効期限・Secure・HttpOnly・SameSiteといった属性で、用途や安全性をコントロールできます。一方でサードパーティCookieへの規制は年々強まっており、Web Storageやトークン認証など、代替・補完となる技術への移行も進んでいます。
関連トピック: