Cosminexus アプリケーションサーバ V8 機能解説 基本・開発編(Webコンテナ)

[目次][用語][索引][前へ][次へ]

2.7.3 セッションの管理方法

Webコンテナでのセッションの管理方法には,HTTP Cookieを使用する方法と,URL書き換えを使用する方法の2種類があります。

Webコンテナは,セッションがどの方法で管理されているかを,セッションIDが何から取得できたかによって判別します。HTTP CookieからセッションIDを取得した場合は,HTTP Cookieによってセッションを管理していると判別します。URLのパスパラメタから取得できた場合は,URL書き換えによってセッションを管理していると判別します。これらの判別は,リクエストごとに実行されます。

ここでは,セッションの管理方法ごとのセッションIDの管理のされ方について説明します。

<この項の構成>
(1) セッションの管理にHTTP Cookieを使用する場合
(2) セッションの管理にURL書き換えを使用する場合

(1) セッションの管理にHTTP Cookieを使用する場合

セッションIDは,HTTP Cookieとして管理されます。

HTTPセッションを新規に作成した場合に,HTTPレスポンスのヘッダにセッションIDを示すHTTP Cookieが付加されます。セッションIDを示すHTTP Cookieの名称は,「JSESSIONID」です。この名称は,Servlet仕様で決められているため,変更できません。なお,作成したHTTPセッションをコミットする前に無効化した場合,HTTP Cookieは付加されません。

(2) セッションの管理にURL書き換えを使用する場合

セッションIDは,URLのパスパラメタとして管理されます。

セッションIDを示すURLのパスパラメタの名称は,「jsessionid」です。この名称は,Servlet仕様で決められているため,変更できません。セッションIDは,WebコンテナによってURLが書き換えられるときに,URLのパスの最後に,「;jsessionid=セッションID」の形式で付加されます。

URLのパスは,階層構造を持っている,リソースを識別するための値です。URLのパスには,クエリやフラグメントは含まれません。このため,これらの要素がURLに含まれている場合,セッションIDは,クエリまたはフラグメントの直前に付加されます。また,URLにセッションID以外のパスパラメタが含まれている場合,セッションIDを示すパスパラメタは,URLに含まれるパスパラメタの最後に付加されます。

ポイント
セッションIDをURLのパスパラメタに追加する場合,URLの文字数が増加します。
増加する文字数を次の表に示します。

表2-28 URL書き換えによって増加するURLの文字数

機能の使用状況 増加するURLの文字数(単位:文字数)
リダイレクタによる負荷分散機能またはサーバID付加機能を使用していない場合 44
リダイレクタによる負荷分散機能を使用している場合 44 + 1(ピリオドの文字数)+ワーカ名の文字数
サーバID付加機能を使用している場合(リダイレクタによる負荷分散機能を使用していないとき) 44 + サーバIDの文字数

注※
「;jsessionid=」の12文字とセッションIDの32文字の合計です。