Cookie

要点

  • Cookieは、サーバーがブラウザに預けておく小さなデータで、以降のリクエストで自動的に送り返されます。
  • サイト自身が発行する「ファーストパーティCookie」と、他サイトが発行する「サードパーティCookie」があり、後者はプライバシー保護の観点から年々規制が強まっています。
  • 規制強化を受けて、Web Storageやトークンベースの認証など、Cookieに頼らない代替手段への移行も進んでいます。

Cookie概要

Cookieは、サーバーからの指示でブラウザに保存される、小さなテキスト形式のデータです。一度保存されると、同じサイトへの次回以降のリクエストで、ブラウザが自動的にサーバーへ送り返します。

サーバー
発行
ブラウザが
保存
次回以降
自動送信
サーバーが
受信・確認

この「発行→保存→自動送信」という一往復の仕組みが、ログイン状態の保持や、ショッピングカートの中身の記憶など、様々な用途の土台になっています。

ぽち先生のヒントお店のスタンプカードに似ているよ。会計時にスタンプを1つ押してもらい(発行)、それを財布に入れて持ち帰るよね(保存)。次に来店したときにカードを見せれば(送信)、お店側は「常連さんだ」とすぐ分かってくれるんだ。

ファーストパーティCookieとサードパーティCookie

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ヘッダーには、有効期限や安全性を制御するための「属性」を付け加えられます。代表的なものは次のとおりです。

Expires/Max-Age有効期限。指定しなければ「セッションCookie」として、ブラウザを閉じると消える。
SecureHTTPS通信のときだけ送信する。盗み見られにくくする。
HttpOnlyJavaScriptから読み取れなくする。不正スクリプトによる盗難を防ぐ。
SameSite他サイトをまたぐリクエストで送信するかどうかを制御する。

「ログイン状態を保持する」チェックボックスの有無は有効期限の違いで実現されていることが多く、サードパーティCookieの制限強化には、このあと見ていく「SameSite」属性が深く関わっています。

ぽち先生のヒントSecureは「鍵付きの車でしか運ばない」、HttpOnlyは「荷物の中身を運転手以外は見られないようにする」ようなイメージだよ。どちらも大切なCookieを途中で盗み見られないための工夫なんだ。

主なCookieの用途

Cookieは、次のような幅広い用途で使われています。

🔑 ログイン状態の保持 セッションIDを保存し、ログインしたまま画面を移動できるようにする
🛒 設定・状態の記憶 言語設定やショッピングカートの中身などを覚えておく
📊 アクセス解析 同じ利用者による訪問かどうかを識別し、行動を分析する
📢 広告配信 興味関心に応じた広告を表示するため、サイトをまたいで利用者を識別する

Cookieの制限は年々厳しくなっている

特にサードパーティCookieによる行動追跡は、プライバシー保護の観点から問題視されており、主要ブラウザや法制度による制限が年々強化されています。

🧭 ブラウザによる制限 Safari・Firefoxは、サードパーティCookieを標準でブロック Chromeも段階的に廃止を進めている
📜 法制度による規制 EUのGDPRなどにより、Cookie利用にはユーザーの同意取得が必要に 同意バナー(Cookieバナー)を見かける機会が増えた

この流れを受けて、Webサイト側では、Cookieだけに頼りすぎない仕組みへの移行が進んでいます。

ぽち先生のヒント昔は自由に配れた「チラシ」が、今は「事前に許可を取らないと配れない」ようになってきた、というイメージだよ。プライバシーへの意識が高まったことで、ルールがどんどん厳しくなっているんだ。

Cookieの代替手段

Cookieに頼らない、あるいは補完する仕組みとして、次のような手段が使われるようになっています。

💾 Web Storage localStorage・sessionStorageなど、ブラウザ内だけに保存され、サーバーへ自動送信されない仕組み
🎫 トークン認証 JWTなどのトークンをアプリ側で管理し、必要なときだけ送信する方式
🕶️ プライバシーに配慮した広告技術 個々の利用者を追跡せず、興味関心の傾向だけを扱う新しい仕組み(例: Privacy Sandbox)

ただし、これらの代替手段にもそれぞれ制約があり、Cookieが完全になくなるわけではありません。用途に応じて使い分けることが重要です。

まとめ

Cookieは、Set-Cookie/Cookieヘッダーによって発行・保存・送信される、Webサイトが利用者を識別するための基本的な手段です。ファーストパーティとサードパーティの違いや、有効期限・Secure・HttpOnly・SameSiteといった属性で、用途や安全性をコントロールできます。一方でサードパーティCookieへの規制は年々強まっており、Web Storageやトークン認証など、代替・補完となる技術への移行も進んでいます。

関連トピック:

🏠 トップに戻る