Cookieの実験室
Modified: 9 Sep 1999
このページの内容を元に、雑誌に投稿しました。このページと併せてご覧ください。
「OpenDesign 1999年2月号 No.30 CQ出版社」に掲載されています。
私のペンネームは、「吉川智」です。
Cookieという言葉を聞いたことがあると思います。これって何でしょう。 意外と中身を説明したものがないんですね。
そこで、このCookieというものを徹底的に調べてみました。といってもわずかな資料をもとにほぼ試行錯誤のようにして調べてみました。
ホームページを見せる立場で、Cookieを活用したページを作り、見にきた人のニーズに添ったページを運用することを目的としたページです。
特に説明がないかぎり、JavaScriptのCookie機能を使っています。
Cookieとは (21 Dec 1997)
Cookieの基礎動作実験 (27 Dec 1997)
FreeのCookieを調べてみる (1 May 1998)
Cookieの仕様 (1 May 1998)
CookieのQ&A (21 Dec 1997)
Cookie関連リンク (21 Dec 1997)
実用的なCookieページを作ってみる (9 Sep 1999)
ActiveServerPagesでCookieを使って見る (30 Dec 1997)
Cookieとは
Cookieというのは、いわゆるクッキー(日本でいう「ビスケット」か「せんべい」)のことで、この言葉は原理や仕組みとは全然関係のない名前です。
多分ですが、Cookieの仕組みを考えた方が、Cookieの効能か原理にと、アメリカ人がクッキーという言葉から連想する意味に共通のものを感じて名付けたんだと思います。
辞書(Random House English-Japanese Dictionary)によると、俗語として、「愛情を込めた呼びかけ」、「粋なやつ」、「胃の内容物」などという意味もあるようです。
Cookieの効能
Cookieの仕組みを使うと、初めて来た人には、「はじめてお越しくださりありがとうございます」という文字を表示し、2回目の以降に来た人には、「毎度のお越しに感謝します」という風にメッセージを変えることができます。
さらに、一回目かどうかだけではなく、いろんなことを記録させることができます。
例えばあなたが何かを売るページを持っているとします。見にきた人がどのページを見ていったかを記録することで、見に来ている人の興味を把握して、その人の興味にそった商品を優先的に見せることができます。売る側からみれば、どのページ、どの商品に人気があるのかを把握することができます。
つまり、お客様のニーズにそった販売活動のできるページを運用することができるわけです。
見る側にとっては、自分の興味、ニーズにそった情報が提供されるので、とても親しみのある有益なページとなるというメリットが得られます。
Cookieの仕組み
Cookieが設定してあるページを、初めて見たとき、サーバーはWEBページの内容に、クッキーデータを付加してあなたのPCに送られてきます。それを受け取ったブラウザはその情報を、PCに書き込みます。
書き込まれる情報は、ドメインアドレスとか、見たページの場所とか、ページに設定してある特別な情報と、URLなどです。
後日、同じURLのページをみると、ブラウザは、クッキーのURLを調べ、一致したらそのクッキーデータを付加してサーバーに送ります。
サーバは、クッキーデータが付加されていることで、初めてでないことがわかります。また、そのクッキーデータは、HTTP_COOKIE という変数に格納されますから、サーバーは、CGIなどでそのクッキーデータの中身を調べて、データの内容によって、いろんな処理をすることが可能になります。
この仕組みにより、サーバーは、見た人を特定することができるので、上記効能が生まれるのです。
Cookieの注意事項
でも、いいことばかりではありません。自分が興味あること、自分が渡り歩いたページが記録されるわけですから、プライバシが侵害される可能性があることになります。
原理を知って、注意すべきことを注意し、メリットを有効に活用しましょう。
Cookieは、どこが本家?
Netscape社です。NetscapeNavigaterが作られたときから、JavaScriptとともに、この Cookie がサポートされていたそうです。
Cookieの説明書はどこにあるのか
リンクのページでも紹介していますが、以下のNetscapeのページにあります。
http://developer.netscape.com/library/documentation/javascript.html
そうです。JavaScriptの一つの機能として書かれています。
上記ページから、「JavaScript Guide」をダウンロードすれば、その中に詳しい説明があります。「JavaScript Reference」も参考になるので、これもダウンロードしておくといいと思います。
Cookieの受け入れを拒否するには
Internet Explorer 3.02 の場合、Cookieの受け入れを拒否するには、「表示」、「オプション」で出てくるダイアログから「詳細設定」タグを選び、「警告」枠内の「"Cookie"を受け入れる前に警告する」にチェックを入れておきます。
Cookieが要求されると、ダイアログが出てきて、受け入れるか受け入れないかを聞いてくるようになります。「いいえ」のボタンを押すと、受け入れが拒否され、記録されません。
Netscape4.01a の場合は、拒否の設定はできませんでした。
「Cookie Crusher」という無条件に、Cookieを拒否する設定ができるソフトもあります。「Cookie関連リンク」を参照してください。
受け入れたCookieの情報はどこに保存されているのか
WindowsNTで確認した情報ですので、Windows95では、少し異なるかもしれません。
Internet Explorer 3.02 の場合
以下のディレクトリ、C:\WinNT\Cookies\ と、C:\WinNT\Temporary Internet Files\ の2ヶ所に入っています。なぜ、2ヶ所に入れるのかは分かりません。
C:\WinNT\は、いわゆるWindowsディレクトリで、つまりWindowsをインストールした場所です。
Temporary Internet Files の内容は、「表示」、「オプション」で、空にすることができますが、このCookieのファイルは消されずに残ります。
「表示」、「オプション」で出てくるダイアログから「詳細設定」タグを選び、「インターネット一時ファイル」の「設定」ボタンを押して出てくる「フォルダを空にする」というボタンを押すと一時ファイル(いわゆるキャッシュ)が削除されます。
記録を消したい場合、Explorerで削除すればOKです。
Netscape4.01a の場合
以下のディレクトリに、cookies.txt の名前で保存されていました。
C:\Program Files\Netscape\Users\tomo\cookies.txt
C:\Program Files\Netscape\ は、Netscapeをインストールしたディレクトリです。
tomo は、ユーザ名で、ユーザ名と同じ名前でディレクトリが作られています。記録を消したい場合、Explorerで削除すればOKです。
Cookieの仕様
Netscape社の、「PERSISTENT CLIENT STATE HTTP COOKIES」というページです。ここに、仕様が書いてあります。
http://www.netscape.com/newsref/std/cookie_spec.html
Java Script の仕様と解説
Netscapeのページです。Cookieは、JavaScriptで使うことから、Cookieの使い方はこのJavaScriptに具体的に書かれています。「JavaScript Reference」を印刷すると、なんと706ページもありました。
http://developer.netscape.com/library/documentation/javascript.html
Cookieを無条件に拒否するソフト
Cookieを無条件に拒否することができるソフトがありました。
Cookieは受け入れるか、警告するかの選択はできるものの、実際に拒否しつづけるのは面倒です。このソフトを使うと、その面倒さを取り除いてくれます。
「Cookie Crusher」という名前のシェアウエアです。NetscapeNavigatorとInternetExplorerのいずれかを指定できます。また、95とNTに対応しています。
VBScriptのページ
Cookieのサンプルがありました。Cookieは、JScriptではサポートされていないようですが、VBScriptでサポートされています。
http://www.microsoft.com/japan/developer/vbscript/
http://www.microsoft.com/japan/developer/vbscript/Samples/cookies/extcookie.htm
以下は紹介だけで、未調査です。
Cookie Central
http://www.cookiecentral.com/unofficial_cookie_faq.htm
How to make cookies and shopping cart
http://www.rent-a-cart.com/tech/make-cookie.html
Malcolm's Guide to Persistent Cookies resources
http://www.emf.net/~mal/cookiesinfo.html
Crispy JavaScript Cookies
http://www.webreference.com/js/column8/
YAHOOのCookieサイトのページ