永尾 幸夫/西山 健二 NTTデータ関西テクシス ソリューションマーケティンググループ テクニカルサポート担当

セッション管理などで活躍するCookie

 前述したように,HTTPではWWWブラウザからWWWサーバーへの情報の要求とWWWサーバーからWWWブラウザへの返答という一度のやり取りで通信が完了する。これはシンプルで使いやすいという半面,一連の整合性を持たせたり,複数のページにまたがったりするような処理を行うWebアプリケーションを実装するには,何らかの工夫が必要になる。

 この問題を解決するために考え出されたのがCookieである*17。Cookieは,WWWサーバーがWWWブラウザに情報を保存し,次のアクセス時にその情報を送信させるための仕組みである。具体的には,WWWサーバーはSet-Cookieというヘッダーを利用してWWWブラウザへ情報を送信する。情報を受け取ったWWWブラウザは情報をローカルに保存する。情報が保存されると,WWWブラウザは次にそのWWWサーバーにアクセスする場合はCookieというヘッダーにWWWサーバーから送られた情報を入れてアクセスを行うようになる。

図9●Cookieを用いればログオンを簡略化できる
 例えば,ユーザー名とパスワードでログインすると個人専用のページを表示してくれるサイトにおいて,一度入力したユーザー名とパスワードをユーザー側のWWWブラウザにCookieとして持たせ,2回目以降はわざわざユーザー名とパスワードを入力しなくても,ログインさせるといった使い方ができる(図9[拡大表示])*18

 また,ECサイトなどでアプリケーション・レベルのセッションを維持するためにもCookieが使われる。まず,ログインしたユーザーに対してIDを割り当て,そのIDをCookieとしてWWWブラウザに保存させる。ユーザーが何らかの動作を行った場合はCookieとしてIDが送られてくるので,それを基に,動作を行ったユーザーが誰かを判断する。こうしておけば,ログアウトするまでユーザーが行った動作を,一連の流れとして認識することができる。

HTTPでも認証することが可能

 認証とは,アクセス制限があるリソースなどにアクセスしようとした場合,ダイアログ・ボックスなどによってユーザー名とパスワードを要求され,正しいユーザー名とパスワードの入力を行わなければリソースにアクセスできない仕組みのことである。

 WWWサーバーでは,アクセス制限のあるリソースへのアクセス要求があった場合,WWWブラウザに対して応答コード401を返し,認証要求を行う。どのような認証を行うかなどの詳細はWWW-Authenticateヘッダーに入れられている。WWWブラウザ側ではダイアログ・ボックスなどでユーザーにユーザー名とパスワードの入力を促し,入力された情報をAuthorizationヘッダーに入れて再度アクセスを行う。ユーザー名とパスワードが正しければWWWサーバーは要求されたリソースをWWWブラウザに返す。

 認証方式には,基本認証とダイジェクト認証がある。両者を比較すると,ダイジェスト認証の方がセキュリティ強度が高い*19