HTTP セッション・サポートは、セッション・トラッキングにも関与しています。 セッション・トラッキングには、Cookie、URL 再書き込み、または Secure Sockets Layer (SSL) 情報が使用できます。
デフォルトの設定では、Cookies を用いてセッションのトラッキングを行います。 Cookie を使用してセッションをトラッキングするのに、特別なプログラムは必要ありません。
セッションをトラッキングする際に URL の再書き込みを使用するアプリケーションは、 特定のプログラミング・ガイドラインを順守する必要があります。 アプリケーション開発者は、次のことを行う必要があります。
URL 再書き込みを使用するためには、セッション管理機能で URL 再書き込みを使用可能にすることも必要です。
サ ーブレットが URL をブラウザーに戻すか、それらをリダイレクトするかによ って、encodeURL メソッドまたは encodeRedirectURL メソッドのどちらかをサーブレット・コードに組み込みます。 現在のサーブレット・コードの中で置き換えるべきものを示す例は、次のとおりです。
現在、次のステートメントがあるとします。
out.println("<a href=¥"/store/catalog¥">catalog<a>");
URL を出力ストリームに送信する前に encodeURL メソッドを呼び出すよう、 サーブレットを変更します。
out.println("<a href=¥""); out.println(response.encodeURL ("/store/catalog")); out.println("¥">catalog</a>");
現在、次のステートメントがあるとします。
response.sendRedirect ("http://myhost/store/catalog");
URL を出力ストリームに送信する前に encodeRedirectURL メソッドを呼び出すよう、 サーブレットを変更します。
response.sendRedirect (response.encodeRedirectURL ("http://myhost/store/catalog"));
encodeURL メソッドおよび encodeRedirectURL メソッドは HttpServletResponse オブジェクトの一部です。これらの呼び出しは、URL をエンコードする前に URL の再書き込みが構成されているかどうかを調べます。 再書き込みが構成されていない場合、呼び出しはオリジナルの URL を戻します。
Cookies と URL の再書き込みが両方とも使用可能になっており、 response.encodeURL メソッドまたは encodeRedirectURL メソッドが呼び出されると、 たとえ HTTP 要求を行なっているブラウザーがセッション Cookie を処理したとしても、 URL がエンコードされます。
セッション・サポートを構成して、プロトコル・スイッチの再指定を使用可能にすることもできます。 このオプションが使用可能にされていると、 製品は HTTP プロトコルと HTTPS プロトコルの切り替え用のセッション ID を使用して URL をエンコードします。
アプリケーションへのエントリー・ポイント (提示されている初期画面など) は、セッションを使用する必要がない場合があります。 ただし、アプリケーションが、一般的に、セッション・サポートを必要としている (つまり、サーブレットなど、 アプリケーションの一部がセッション・サポートを必要としている) 場合、セッションが作成された後で、 セッション・サポートを必要とするサーブレット (または他のアプリケーション・コンポーネント) 向けに、 セッション ID を永続化するためにすべての URL がエンコードされます。
次の例は、Java コードを JSP ファイル内に組み込む方法を示しています。
<% response.encodeURL ("/store/catalog"); %>
Secure Sockets Layer (SSL) 情報を使用してセッションをトラッキングするために、 特別なプログラムは必要ありません。
SSL 情報を使用するには、 セッション管理プロパティー・ページの「SSL ID トラッキングを使用可能にする」をオンにします。 SSL セッション ID は、Web ブラウザーと HTTP Server との間で折衝されるため、 HTTP Server の障害時には存続できません。 ただし、WebSphere Application Server とブラウザーの間に外部の HTTP サーバーが配置されている場合は、アプリケーション・サーバーの障害は SSL セッション ID に影響を与えません。
SSL トラッキングがサポートされるのは、IBM HTTP Server および iPlanet Web サーバーのみです。 SSL セッション ID の存続期間は、Web サーバーでオプションを構成することで制御できます。 例えば、IBM HTTP Server では、構成変数 SSLV3TIMEOUT を設定して、 SSL セッション ID に十分な存続期間を提供することができます。 インターバルが短すぎると、セッションが未完了のまま終了してしまうことがあります。 また、一部の Web ブラウザーでは、 SSL セッション ID の存続期間に影響を与えるような独自のタイマーが用意されています。 そのような Web ブラウザーでは、SSL セッション ID が、セッション・トラッキング用のメカニズムとしての機能を発揮できるだけの時間は、アクティブになっていないことがあります。 また、WebSphere Application Server の内部 HTTP サーバーでも SSL トラッキングがサポートされています。
クローン作成された環境で SSL セッション ID をセッション・トラッキング・メカニズムとして使用する場合、 セッション類縁性を保持するために、Cookies または URL の再書き込みを使用する必要があります。 Cookie または再指定された URL には、 それぞれの要求ごとに Web サーバーがセッションを正しく同じサーバーに経路指定して戻すことができるようにするセッション類縁性の情報が含まれています。