全1361文字
PR

 Webサイトにアクセスしたとき、自分の名前が表示されたり、通販サイトで以前カートに入れた商品が残っていたりすることがある。これを実現する仕組みが「Cookie」だ。Cookieの実体はテキストデータで、Webブラウザーごとに保存される。

 Cookieを利用するWebサイトにWebブラウザーでアクセスすると、Cookieをセットするよう指示するHTTPレスポンスが返ってくる(図1)。これにより「そのドメインに特化した値」がCookieとして保存される。

図1●ドメインに特化した任意の値をWebブラウザーに保存
図1●ドメインに特化した任意の値をWebブラウザーに保存
[画像のクリックで拡大表示]

 Cookieが保存されたWebブラウザーで再びそのドメインのWebサイトにアクセスするとWebサーバーにそのCookieの値が送られる。これによりWebサイトは前回アクセス時の状況を把握する。

 Cookieの値を送るのはそのドメインのWebサイトだけで、他のドメインのWebサイトには送らない。ユーザーはWebブラウザーの設定画面で、保存されているCookieを確認できる(図2)。

図2●Webブラウザーに保存されているCookieの例
図2●Webブラウザーに保存されているCookieの例
ここに示したのは「Chrome」のCookieの例。「active.nikkeibp.co.jp」で2件、「bizboard.nikkeibp.co.jp」で2件、「bpsearch.nikkeibp.co.jp」で1件のCookieが保存されていることが分かる。ローカルストレージやデータベースストレージは、Cookieとは別の方法でローカルにデータを保存する仕組み。
[画像のクリックで拡大表示]

 Cookieを利用して認証の結果を引き継ぐことも可能だ。そうすればサービスの利用時にいちいちIDやパスワードを入力する手間を省ける(図3)。サーバー側で特定ユーザーのアカウントと乱数をひも付け、その乱数をCookieに保存する。ユーザーがCookieデータ付きでアクセスすることで、そのアカウントだと判断できる。ただし、このCookieの値を盗聴されるとなりすまされてしまう

図3●認証情報をCookieに保存する
図3●認証情報をCookieに保存する
サービスがユーザーの認証情報をCookieに保存することで、ユーザーはサービスの利用時にいちいちID/パスワードを入力する必要がなくなる。ただし、このCookieの値を盗聴されるとなりすまされてしまうため、暗号化通信などで盗聴を防ぐ必要がある。
[画像のクリックで拡大表示]
▼セットするよう指示
Cookieの有効期限を合わせて指定すると、その期限までCookieがローカルに保存される。有効期限を指定しないと、ユーザーがWebブラウザーを閉じたときにCookieが消去される。
▼HTTP
Hyper Text Transfer Protocolの略。
▼なりすまされてしまう
このため暗号化通信などで盗聴を防ぐ必要がある。