Java セッションの仕組み
Javaのセッションは、サーバ側でのユーザのデータ保持を実現するメカニズムです。仕組みとしては、
- ユーザーが最初にサーバーにアクセスすると、サーバーはユーザーの一意のSession IDを作成し、このIDをCookieに保存し、クライアントのブラウザに返します。クライアントのブラウザはこのCookieを保存します。
- サーバは各セッションIDごとにセッションオブジェクトを作成し、それをサーバのメモリもしくは他の記憶媒体に格納します。
- リクエストには、ユーザーがリクエストを送信したときのユーザーセッション ID が含まれます。サーバーは、リクエストを受信するとセッション ID に基づいて、対応するセッションオブジェクトを見つけます。
- サーバーはセッションオブジェクトを通じてセッション中に格納されたユーザーデータをの取得、変更を行うことができる。
- ユーザーがブラウザを閉じたり、アクセスがタイムアウトすると、セッションは無効になり、サーバーはセッションオブジェクトとそれに対応するユーザーデータを削除します。
サーバーはセッションを使って、ユーザーの異なった要求間のデータを記憶して送信し、ユーザーの状態の追跡と管理を行います。同時に、セッションはユーザーのログイン状態、ショッピングカート情報などの記憶にも使用できます。