クッキーの仕組み

 では簡単にクッキーの仕組みを理解しておこう。ブラウザはホームページの閲覧時,Webサイトからクッキーを受け取る(図1)。そして,ブラウザはそのクッキーを受け取り保管する。ユーザーが再び同じサイトを訪問した際には,Webサイトはそのユーザーが保持していたクッキーを参照するというのが,基本的なクッキーの利用方法だ(図2)。

図1
図1■ブラウザはホームページの閲覧時,Webサイトからクッキーを受け取る。

図2
図2■ブラウザはそのクッキーを受け取り保管する。ユーザーが再び同じサイトを訪問した際には,Webサイトはそのユーザーが保持していたクッキーを参照する。

 例として,単純なクッキーカウンターを試してみよう。まず筆者のWebサイトにアクセスしてクッキーを受け取る。ブラウザの「更新」ボタンを押すと,クッキーファイルを参照し,「クッキー情報」のカウントが1つあがるはずだ。保持されているクッキーファイルを削除するとカウントは0(初めて訪問)になる。ここではカウンターのほかに,訪問者の「IPアドレス」,「直前まで見ていたホームページのURL」の3つをクッキーとしてセットしている。

 ではクッキーファイルの中身について少し解説しておこう。今回テストしたクッキーファイルを開くとこのような内容になっている(リスト1)。これはNetscape6.1のクッキーファイルだ。

リスト1■Netscape6.1のクッキーファイル

# HTTP Cookie File
# http://www.netscape.com/newsref/std/cookie_spec.html
# This is a generated file! Do not edit.
# To delete cookies, use the Cookie Manager.

.blackout.org TRUE / FALSE 1005263977 COUNT 5
.blackout.org TRUE / FALSE 1005263977 IP 223.238.95.27
.blackout.org TRUE / FALSE 1005263977 URL

 クッキーファイルは「Name」,「Domain」,「Path」,「Expires」,「Secure」で構成されている(表1)。1番左にはドメイン名があり,クッキーを受け渡したドメイン名が書かれている。2番目に「TRUE」とあるのは,クッキーがセットされた際,HTTPヘッダかJavaScriptどちらでセットされたかを示している。TRUEであればHTTPヘッダ,FALSEであればJavaScriptでセットされたことを意味する。3番目の「/」はPathの部分にあたる。次の4番目の「FALSE」はSecureを表す。そして,数字の羅列された部分はクッキーの有効期限を表している。最後は見てわかるようにサイトから受け取ったクッキーの中身になる。クッキーNameやそれに付随する情報がここにあたる。

表1■クッキーファイルに書かれている内容

Name クッキーの名前
Domain クッキーを受け渡したドメイン名
Path クッキーのアクセスできるパス。「/」である場合サイト内のどこからでもクッキーにアクセスできる。「cgi-bin」とあれば「cgi-bin」以下ということになる
Expires クッキーの有効期限
Secure サーバの保護(HTTPS/SSLなどを使用してクッキーを伝送)

PREV 3/5 NEXT