ネットワークの世界では,「セッション」という言葉をよく使う。「セッション」とは,ネットワークから見た,一連の処理の始まりから終わりまでを表す概念だ。

HTTPにはセッションがない

 Webアクセスにも「セッション」はつきものだ。例えば,ショッピング・サイトにアクセスしたとき(図1)。最初のWebページでログイン,次のWebページで注文,さらにその次のページで決済といった具合に何回もWebアクセスを繰り返しながら処理を進め,最後にログアウトする。このログインからログアウトまでが,一つのセッションだ。ユーザーが意識しなくても複数のWebアクセスが関連付けられ,前回までのアクセス結果を基にアプリケーションが処理を進めていく。

図1●Webアプリへのアクセスにはセッション管理が欠かせない<br>Webアプリは複数Webページにまたがっても,きちんとユーザーを識別して,前のWebアクセスの処理結果を引き継いで処理を続けてくれる。その陰では,複数のWebアクセスを関連付け,処理の進行状態を管理するセッション管理のしくみが働いている。
図1●Webアプリへのアクセスにはセッション管理が欠かせない
Webアプリは複数Webページにまたがっても,きちんとユーザーを識別して,前のWebアクセスの処理結果を引き継いで処理を続けてくれる。その陰では,複数のWebアクセスを関連付け,処理の進行状態を管理するセッション管理のしくみが働いている。
[画像のクリックで拡大表示]

 このように複数の画面にまたがるWebアクセスで処理が引き継がれることは,一見何の不思議もなさそうだ。しかし,本当は驚くべきことなのである。Webアクセスに使うHTTPには「セッション」という概念がない(別掲記事参照)。Webサーバーに保存してあるWebページを表示するだけなら困らないが,ユーザーの入力操作などで複数の画面を使って処理を進めるWebアプリがあるサイトでは,HTTPのしくみだけでは前の画面の処理結果が引き継がれない。そのままだと2画面以上をまたがるWebアプリは実現できなくなってしまう。

Webサイトがセッション管理を実現

 そこでWebアプリがあるWebサイトでは,サイト側が主導権を取って,Webブラウザとの間で情報をやりとりすることで,複数ページにまたがる一連のWebアクセスを「セッション」として扱うようになっている。さらにWebサイトは,確立したセッションの処理の進行状態を管理する。この二つの仕事をまとめて「セッション管理」という。ショッピング・サイトで言えば,(1)どの顧客からのアクセスかを識別して,(2)買い物カゴの中身や購入手続きがどこまで進んでいるかを管理する──というイメージだ。

 今どきのWebアクセスを理解するには,セッション管理のしくみや実現手法についての知識が欠かせない。セッション管理の実現手法がわかれば,ネットワークの立場からWebアプリの振る舞いが見えてくる。

管理の基本的なしくみを押さえる

 そこでこの特集では,Webアクセスのセッション管理のしくみとその実現手法を解説する(図2)。Webアクセスのセッション管理を三つのステップで理解できるように構成した。

図2●Webアクセスのセッション管理を理解する3ステップ<br>基本的なしくみに加えて,セキュリティ対策や携帯電話からアクセスするときのしくみがわかれば,セッション管理の理解は完璧だ。
図2●Webアクセスのセッション管理を理解する3ステップ
基本的なしくみに加えて,セキュリティ対策や携帯電話からアクセスするときのしくみがわかれば,セッション管理の理解は完璧だ。
[画像のクリックで拡大表示]

 最初のステップでは,まずセッション管理を実現するための基本的なしくみを説明する(図2の(1))。実際のセッションは,WebサイトとWebブラウザの間で情報をやりとりして実現する。そこではブラウザ用の小さなデータであるCookie(クッキー) がよく使われる。このCookieをはじめとする実現手法を見ていく。

 Webサイトは,多数のユーザーからのアクセスを同時に並行して受け付け,どのユーザーからのアクセスであっても,きちんと前画面の処理を引き継ぐ。巧みな方法でアプリケーションがセッションを利用し処理状態を管理している。この方法も確認しておこう。

 また,Webアクセスのセッションでは,Webサイト側で想定した通りにユーザーがアクセスしてくれるとは限らない。間違えて2重に商品を注文してしまったりすることがある。こういった問題をどう解決しているかも説明する。