サンプルsimple: Cookieの基本確認
今回,筆者は四つのサンプル・プログラムを作りました。CookieをクライアントにセットしてCookieの動作を試す「simple」,Cookieを自由に読み書きできる「ReadWrite」,ユーザーのアクセスを追跡する「Tracker」,ログイン状態を管理できる掲示板の「board」です。すべてPerlで書かれたCGIのWebアプリケーションです。
動作は,以下の環境で確認しました。
- サーバー側
- クライアント側
- Windows XP(サーバーと同じマシン)
- Internet Explorer 6.0
最初は,単純にCookieをクライアントにセットするプログラムから見てみましょう。Webブラウザの設定を,Cookieを受け取ったときにダイアログを表示する設定にして実験することで,ブラウザがいつCookieを受け取るかを体感しやすくなります。
Cookieを受け取るときにダイアログを表示
Webアプリケーションから送られてくるCookieの内容や,そのタイミングを見る目的で,Webブラウザの設定を変更します。ここではInternet Explorerの例を示します。Internet Explorerのメニューで,[ツール]-[インターネットオプション]を選び,表示されたダイアログの「プライバシー」タブで[詳細設定]ボタンを押します。
図3のような画面が出ますので,「ファーストパーティのCookie」と「サードパーティのCookie」の両方とも「ダイアログを表示する」に設定します。このようにすると,Cookieを受け取ったときにダイアログを表示するようになります。
図3●Cookieを受け取ったときにダイアログを表示するように設定する |
Cookieを見る
では,この設定を施した状態で,Cookieの基本を確認してみましょう。まず,リスト1に示すsimple.cgiをCGIとして設置します。
|
リスト1●Cookieの基本を確認するCGI |
「Set-Cookie:」で始まる行が,Webブラウザに送るSet-Cookieを示します。そのあとの「<html>」以降は,Webブラウザで表示される内容です。WebブラウザでこのCGIにアクセスすると,WebブラウザがCookieを受け取り,図4のようなダイアログを表示します。
図4●ブラウザがCookieを受け取ったときに表示される「プライバシー警告」ダイアログ |
さらに[詳細情報]ボタンを押すと,図5のように表示されます。
図5●「プライバシーの警告」ダイアログを詳細表示する |
Set-Cookie: key1=value1; path=/
に書かれている内容に対応していることがわかるでしょう。
このSet-Cookieにはexpiresがありませんから,「有効期限」は「セッションの終わり」になっています。またsecureフラグがついていないので「セキュリティ保護」は「いいえ」になっています。
[Cookieを許可]のボタンを押すと,Webブラウザは図6のような画面になります。この画面を見ただけではCookieの有無や内容は全くわかりません。
図6●simple.cgiの表示 |
ぜひ,Cookieを受け取ったらダイアログを表示する設定のまま,あちこちのWebサイトにアクセスしてみてください。驚くほどに頻繁にダイアログが表示されることがわかるはずです。つまり,Cookieはそれほど一般的に多用されている技術なのです。