Skip to content

Cookie

「小型のテキストファイル」形式の Cookie(クッキー)は、一部のウェブサイトがユーザーを識別するために、ユーザーのクライアント側(Client Side)に保存するデータ(通常は暗号化されています)を指します。

対話型のウェブアプリケーションは、HTTP プロトコルがステートレスである——つまり、サーバーがユーザーが前回何をしたかを知らないという事実によって大きく妨げられています。典型的なオンラインショッピングのシナリオでは、ユーザーがいくつかのページを閲覧し、クッキー 1 箱と飲料 2 本を購入します。決済の際、HTTP はステートレスであるため、追加の手段がなければサーバーはユーザーが何を購入したかを知ることができません。そのため、Cookie は HTTP のステートレス性を回避するために使用される「追加の手段」の 1 つです。サーバーは、ユーザーのサーバーとのセッション状態を維持するために、Cookie に含まれる情報を設定または読み取ることができます。

先ほどのショッピングのシナリオでは、ユーザーが最初の商品を選択した際に、サーバーはウェブページと共に、その商品の情報を記録した Cookie をユーザーに送信します。ユーザーが別のページにアクセスすると、ブラウザは Cookie をサーバーに送信するため、サーバーはユーザーが以前に何を購入したかを知ることができます。ユーザーが続けて飲料を購入すると、サーバーは元の Cookie に新しい商品情報を追加します。決済時に、サーバーは送られてきた Cookie を読み取ります。

Cookie のもう 1 つの典型的な用途は、ウェブサイトにログインする際に、サイトがユーザーにユーザー名とパスワードを求め、ユーザーが「次回から自動的にログインする」というボックスにチェックを入れられるようにすることです。これにチェックを入れると、次回同じサイトにアクセスした際、ユーザー名やパスワードを入力せずとも既にログイン状態になっていることに気づくでしょう。これはまさに、前回のログイン時にサーバーがログイン認証情報(ユーザー名とパスワードをある形式で暗号化したもの)を含む Cookie をユーザーのハードディスクに送信したためです。2 回目のログイン時、その Cookie が有効期限内であれば、ブラウザは Cookie を送信し、サーバーが認証情報を検証して、ユーザー名とパスワードを入力せずにログインを許可します。