Cookieについて
■ Cookieの概要
Cookieと書いてクッキーと読みます。お菓子ではありません。 (=^o^=)
1994年にNetscape Communications CorporationによってCookieが提案・実装されました。
Netscapeはインターネットのブラウザとして、Internet
Explorerと共に広く使われていました。
大抵パソコンには、この2つがインストールされていたものです。
Netscapeは使用されなくなりましたが、Mozilla Firefox
および Mozilla Thunderbird
に引き継がれています。
http://www.mozilla-japan.org/switch/netscape/
Cookieでは次のようにサーバとクライアント間の状態を管理します。
1. WebサーバがWebブラウザにその状態を区別する識別子をHTTPヘッダに含める形で渡す。
2. ブラウザは次にそのサーバと通信する際に、与えられた識別子をHTTPヘッダに含めて送信する。
3. サーバはその識別子を元にコンテンツの内容をユーザに合わせてカスタマイズし、ブラウザに渡す。
必要があれば新たな識別子もHTTPヘッダに含める。
以降2、3の繰り返し。
■ Cookieの用途
Cookieの最も代表的な用途は、ショッピングサイトにおけるカートやログイン状態の管理です。
また、IPアドレスによらないクライアントの識別を可能にするため、Webサイト運営者や
インターネット広告配信業者などがユーザの詳細なアクセス履歴を取得する用途にも使われます。
繰り返しになりますが、Cookie
とは、以下のようなことを実現するためのものです。
・訪問者がそのページに何回訪れたか記録して表示する。
・通常モード、フレームモードなど、訪問者の好みを記録しておき、次回訪問時にその好みのモードで表示する。
・掲示板やチャットで入力したユーザー名を記録しておき、次回訪問時にユーザー名の入力を省略する。
・ログインによるセッションを確立する。
CGI
などを用いてサーバー側に記録することもできますが、Cookie
を用いることにより、
クライアント側(ブラウザを起動する側 -
自分のパソコン)のハードディスク内に Cookie情報
と呼ばれるデータを
記録することができるようになります。
もし、サーバーにCookieに記憶する内容を保存していたら、サーバーの記憶容量は膨大なものとなってしまいます。
また、負荷が大きくなることで、サーバーの能力がオーバーフローするチャンスが今よりも多くなっていたでしょう。
■ Cookie情報が保存されるファイル
Cookie情報が保存されるファイルは OS
やブラウザのバージョンによって異なりますが、例えば以下のようなフォルダや
ファイルに記録されます。
C:\Document and Settings\ユーザ名\Cookies (ここに保存されているケースが一番多いと思います。)
C:\Program Files\Netscape\Users\UserName\cookies.txt
C:\Program Files\Netscape\Navigator\cookies.txt
C:\Windows\Cookies\〜.txt
私のパソコンではC:\Document and Settings\ユーザ名\Cookiesに保存されています。
遠藤充明@adobe[1].txt
遠藤充明@blog.livedoor[1].txt
遠藤充明@id.rakuten.co[1].txt
遠藤充明@microsoft[1].txt
など、.txt形式のファイルです。

■ Cookieの設定
Cookie
を受け付けるか、受け付けないかの設定は以下のメニューで行います。
ブラウザ メニュー
IE6.0 [ツール]→[インターネットオプション]→[プライバシー]
IE5.0 [ツール]→[インターネットオプション]→[セキュリティ]→[レベルのカスタマイズ]→[Cookie]
NS6.* [編集]→[設定]→[プライバシーとセキュリティ]→[Cookie]
NS4.* [編集]→[設定]→[詳細]→[Cookie]
Cookieを有効にするには? (IE6.0で説明)
(1) IEを起動します。
(2) [ツール(T)]-[インターネットオプション(O)]
をクリックします。
(3) [プライバシー] タブを開きます。
(4) [詳細設定(V)] をクリックします。
(5) [自動 Cookie処理を上書きする(O)]
にチェックを入れます。
(6) [ファーストパーティのCookie] を [受け入れる(A)]
[サードパーティのCookie] を [受け入れる(C)]
を選択し、[OK]-[OK] をクリックします。
Mozillaの場合には
(1) Mozillaを起動します。
(2) [ツール(T)]-[Cookie マネジャ]にカーソルをもって行くと次の4つから選択することができます。
このサイトの Cookie を拒否する(B)
デフォルトの Cookie の許可を使う(U)
このサイトのセッション Cookie
を常に受け入れる(S)
このサイトの Cookie を受け入れる(A)
■ 承諾した Cookie の確認
Internet Explorer 5.x を使用の場合
タスク バーで
1. [ツール] メニューを選択します。
2. [インターネット オプション]
をクリックします。
3. [全般] タブ (デフォルトのタブ)
を選択します。
4. [設定] をクリックします。
5. [ファイルの表示] をクリックします。
Netscape Communicator 4.0 をご使用の場合
Netscape はすべての Cookie をハード ディスク上の 1
つのファイルにバンドルします。
Windows マシンの Cookie.txt
ファイルを探してください。
Mozillaの場合には
(1) Mozillaを起動します。
(2) [ツール(T)]-[Cookie マネジャ]にカーソルをもって行くと
Cookie の受け入れら設定に関する4つの選択肢の下に保存した
Cookie を管理(M)
という項目があるので、クリックします。
(3) Cookie マネージャというWindowが開きます。
(4) 保存済み Cookie タブを選びます。
(5) そこに表示されている Cookie
を選ぶと、その下の[選択した Cookie
に関する情報]というところに
Cookie の名前
ホストのサイト名
有効期限
などが表示されます。
■ 利用する Cookie の選択
すべての Cookie
を承諾するか、毎回メッセージを表示して承諾の決定をするかをブラウザで
指定することができます。
Internet Explorer 5.x を使用の場合
1. [ツール] メニューを選択します。
2. [インターネット オプション]
をクリックします。
3. [セキュリティ] タブをクリックします。
4. [インターネット] をクリックして、[レベルのカスタマイズ]
を選択します。
5. [Cookie] までスクロールして、2
つのオプションから 1 つを選択します。
Netscape Communicator 4.0 を使用の場合
メニュー バーで
1. [編集] メニューを選択します。
2. [設定] をクリックします。
3. [詳細] をクリックします。
4. [Cookie] でオプションを設定します。
Mozillaの場合には、既に前に説明したように、あらかじめ
Cookie の許可、拒否を決めておくことはできますが、
毎回メッセージを表示して承諾の決定をするという方法はありません。
■ Cookieの書き込み
1つのCookieには4096バイトのデータを記録でき、最大で300のCookieを保存できます。
1台のサーバが同じコンピュータに対して発行できるCookieの数は20個に制限されています。
Cookieにはそれぞれ有効期限を設定することができ、有効期限を過ぎたCookieは消滅します。
HTML を用いて Cookie
の値を記録させるには次のようにします。
<meta http-equiv="Set-Cookie" content="〜">
JavaScript を用いる場合は次のようにします。
document.cookie = "〜";
〜の部分には次のような文字列を指定します。
NAME=値; expires=値; domain=値; path=値; secure
NAME=値; 以外は省略可能です。
パラメータ 意味
NAME=値
必須。好きな名前に好きな値を指定します。
セミコロン(;)、カンマ(,)、空白文字(
)や日本語を使用する際には
それぞれ、何らかの形式にエンコードする必要があります。
エンコードには %3B、%2C、%20 などの
URL形式のエンコードがよく用いら
れるようです。
expires=値 クライアント側に記録される Cookie
の有効期限を
Thu, 1-Jan-2030 00:00:00 GMT
のような形式で指定します。
タイムゾーンは必ず GMT
で指定します。
省略するとブラウザを終了させるまでが有効期限となります。
過去の値を指定すると Cookie
を削除します。
domain=値 Cookie を発行する Webサーバーの名前を指定します。
省略した場合は Webサーバー名(www.tohoho-web.com
など)になります。
path=値
ここで指定したパス名にマッチするページを参照したときに、ブラウザは
保存しておいた Cookie情報をサーバーに送ります。
例えば、path=/tanaka と指定すると、/tanaka
にマッチするすべての
ページに対して Cookie情報が送られます。
省略時は、Cookie
を設定したページのパス名部になります。
secure これを記述しておくと、サーバーとの接続がセキュアである時のみ、
Cookie情報が送信されるようになります。
■ Cookieで複数の値を設定するには?
CGI や <meta> の場合は Set-Cookie
ヘッダを複数記述してください。
Set-Cookie: LOGIN=tanaka;
Set-Cookie: PASSWD=hi.mi.tu;
JavaScript の場合は document.cookie = "〜"
を複数記述してください。
document.cookie = "LOGIN=tanaka;";
document.cookie = "PASSWD=hi.mi.tu";
■ 一時的な Cookie
Cookie ヘッダに expires
を省略することで、テンポラリー Cookie
をセットすることができます。
テンポラリー Cookie
は、ブラウザーを閉じた時点で、無効になってしまいます。
パスワードを入力させて、そのブラウザーを開いているときだけ
CGI への要求を受け付けるような
アプリケーションに有効です。
このテンポラリー Cookieは、ファイルに保存されません。
■ Cookieをブラウザーで確認するには
いつも知らず知らずのうちに仕込まれてしまう
Cookie ですが、Netscape の設定で都度確認画面を
出すことができます。
残念ながら Internet Explorer ではできません。
まず、Netscape Communicator
の設定を変更しなければいけません。
ツールバーから「編集(E)」→「設定(E)...」を選択してください。
カテゴリ欄の「詳細」を選択すると、右側に詳細設定画面が表示されます。
ここの「Cookie」の欄で「cookieを受け付ける前に警告する(W)」にチェックを入れてください。
これで、Cookie
を受け付ける都度、確認画面が出てくるようになります。
−−−−−−−−−−−−−−−−−−−−−−−−−
Cookie の名前と値は以下の通りです。
XXXX........XXXX
このCookie の存在期間は Thu May 03 22:22:39 2008
Cookie を設定してもよろしいですか?
−−−−−−−−−−−−−−−−−−−−−−−−−
これに対してOKボタンまたはキャンセルボタンをクリックすることになります。
今でも使用している人がいるのか、どうか、Netscape
の説明も入って解りにくく
なってしまいました。
でも Mozilla は良いソフトですよ。Internet Explorer
だけでなく、 Mozilla も
ダウンロードして試してみてください。無料ですから。
本日はこれにて終了です。