クッキー(クッキー)とは | 意味や読み方など丁寧でわかりやすい用語解説

クッキー(クッキー)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

クッキー (クッキー)

英語表記

cookie (クッキー)

用語解説

クッキーとは、ウェブサイトの提供者が、ユーザーのウェブブラウザに保存させる小さなデータのことである。これは、ウェブサイトがユーザーの状態を記憶し、管理するために利用される。HTTPプロトコル自体はステートレス、つまり個々のリクエストが独立しており、以前のリクエストの情報を保持しない特性を持つため、クッキーはこのステートレスな特性を補い、連続的なユーザー体験を提供するために不可欠な技術となっている。例えば、ログイン状態の維持、ショッピングカートの内容の記憶、ユーザー設定の保存、表示履歴に基づいたコンテンツのパーソナライズなどに利用される。ウェブブラウザがウェブサーバーにリクエストを送信する際、そのリクエストに紐付けられたクッキーも自動的にサーバーへ送信され、サーバーはそれを受け取ってユーザーの状態を識別する。

クッキーの具体的な動作と構造は以下のようになっている。ウェブサーバーは、ユーザーのブラウザに対してSet-Cookie HTTPレスポンスヘッダを送信することでクッキーを設定する。このヘッダには、クッキーの名前と値のペアが含まれ、さらにクッキーの振る舞いを制御するための様々な属性が付加される。ブラウザはこれを受け取ると、指定されたドメインとパスに該当するクッキーをローカルに保存する。その後、同じドメインとパスに対する以降のリクエストでは、ブラウザが自動的にCookie HTTPリクエストヘッダを介して保存されたクッキーをサーバーに送信する。

クッキーに付加される主な属性には、以下のようなものがある。Domain属性は、そのクッキーがどのドメインに対して有効であるかを指定する。例えば、example.comと指定された場合、sub.example.comのようなサブドメインにも送信される。Path属性は、ドメイン内のどのパス(ディレクトリ)に対してクッキーが有効であるかを指定する。ExpiresまたはMax-Age属性は、クッキーの有効期限を設定する。Expiresは特定の日付と時刻を指定し、Max-Ageは現在時刻からの相対的な秒数を指定する。これらの属性が設定されていないクッキーは「セッションクッキー」と呼ばれ、ブラウザが閉じられると削除される。一方、設定されているクッキーは「永続クッキー」と呼ばれ、有効期限までブラウザを閉じても保持される。

セキュリティに関連する属性としては、SecureHttpOnlySameSiteがある。Secure属性が設定されたクッキーは、HTTPSなどの暗号化された接続経由でのみサーバーに送信される。これにより、ネットワーク盗聴によるクッキーの漏洩リスクを低減する。HttpOnly属性が設定されたクッキーは、JavaScriptのdocument.cookie APIなどからアクセスできなくなる。これは、クロスサイトスクリプティング(XSS)攻撃によって悪意のあるスクリプトが挿入された場合でも、セッションクッキーなどの重要な情報が盗まれるのを防ぐための対策として有効である。SameSite属性は、クッキーがクロスサイトのリクエストで送信されるべきかどうかを制御するもので、クロスサイトリクエストフォージェリ(CSRF)攻撃に対する防御策として導入された。StrictLaxNoneの三つの値があり、Strictは完全に同一サイトからのリクエストのみ、Laxは一部の安全なクロスサイトリクエスト(GETリクエストなど)で送信を許可するが、サードパーティのサイトからのナビゲーションなどの一部のケースでは送信しない。Noneは常にクロスサイトで送信されるが、この場合Secure属性も同時に設定されていなければならない。

クッキーはまた、その設定元によって「ファーストパーティクッキー」と「サードパーティクッキー」に分類される。ファーストパーティクッキーは、ユーザーが現在訪問しているウェブサイトのドメインによって設定されるクッキーである。これに対し、サードパーティクッキーは、訪問しているウェブサイトとは異なるドメイン(例えば、埋め込まれた広告や分析ツールを提供するドメイン)によって設定されるクッキーである。サードパーティクッキーは、異なるサイト間でのユーザー行動の追跡(トラッキング)によく利用されるため、プライバシー保護の観点から問題視されることが多く、近年では多くのブラウザが初期設定でサードパーティクッキーをブロックしたり、規制が強化されたりする傾向にある。

クッキーには一般的にサイズ制限があり、通常は1つのクッキーにつき4KB程度まで、また1つのドメインにつき保存できるクッキーの数にも制限がある。ユーザーはブラウザの設定を通じて、クッキーの保存を拒否したり、既存のクッキーを削除したりすることも可能である。このように、クッキーはウェブの利用体験を向上させる一方で、セキュリティとプライバシーの考慮が常に必要とされる重要な技術要素である。

関連コンテンツ

関連ITニュース