Cosminexus V9 アプリケーションサーバ 機能解説 互換編

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

6.7.5 リクエストラインの最大サイズの設定

URL書き換えによってグローバルセッションを制御する場合の,リクエストラインの最大サイズの設定について説明します。

URL書き換えによってグローバルセッションを制御する場合,URLのパスパラメタには,HTTPセッションのセッションIDとグローバルセッションIDが含まれます。HTTPリクエストのリクエストラインのサイズは,サーバ側およびクライアント側でそれぞれ上限があります。このため,あらかじめリクエストラインの最大サイズを算出して,それを基に,必要に応じてリクエストラインの最大サイズを設定してください。

ここでは,URL書き換えによってグローバルセッションを制御する場合のリクエストラインのサイズの算出方法と,リクエストラインのサイズの上限値を設定する方法について説明します。

<この項の構成>
(1) リクエストラインの文字列長の算出と最大サイズの設定
(2) URL書き換え使用時のリクエストラインのサイズの算出
(3) リクエストラインの最大サイズの算出と設定

(1) リクエストラインの文字列長の算出と最大サイズの設定

URL書き換えによってグローバルセッションを制御する場合の,リクエストラインの最大サイズの設定について説明します。

URL書き換えによってグローバルセッションを制御する場合,URLのパスパラメタには,HTTPセッションのセッションIDとグローバルセッションIDが含まれます。HTTPリクエストのリクエストラインのサイズは,サーバ側およびクライアント側でそれぞれ上限があります。

URL書き換えによってグローバルセッションを制御する場合には,あらかじめリクエストラインの最大サイズを算出して,それを基にサーバおよびクライアントでのリクエストラインの最大サイズを設定しておく必要があります。

URL書き換えを使用する場合のリクエストラインの文字列長の算出方法,およびリクエストラインの最大サイズの設定方法については,「6.7.5 リクエストラインの最大サイズの設定」を参照してください。

(2) URL書き換え使用時のリクエストラインのサイズの算出

リクエストライン全体のサイズは,リクエストラインを構成する各項目のサイズを基に算出してください。

URL書き換えをする場合のリクエストラインの構成を次の図に示します。URL書き換えで使用するパスパラメタは,(d)と(e)に挿入されます。

図6-18 URL書き換えをする場合のリクエストラインの構成

[図データ]

リクエストラインを構成する各項目について説明します。(a)〜(h)は図中の文字と対応しています。

表6-12 URL書き換えをする場合のリクエストラインを構成する項目

図中の文字 項目 説明
(a) メソッド リクエストのメソッドです。 GET
POST
(b) スペース 区切りを示す空白文字です。
1バイト固定です。
(c) リクエストパス 宛先を示すパスです。 http://www.host1:1234/example/test.jsp/example/test.jsp
(d) HTTPセッションのセッションIDを示すパスパラメタ URL書き換えによってURLに付加された,HTTPセッションのセッションIDを示すパスパラメタです。 ;jsessionid=01234567aaaabbbbccccddddeeeeffffserver1
(e) グローバルセッションIDを示すパスパラメタ URL書き換えによってURLに付加された。グローバルセッションIDを示すパスパラメタです。 ;gsessionid=0123456789abcdef01234567aaaabbbbccccddddeeeeffffserver1
(f) クエリ リクエストに付加されたクエリ文字列です。 ?a=b&x=y
(g) スペース 区切りを示す空白文字です。
1バイト固定です。
(h) HTTPバージョン HTTPのバージョンを示す文字列です。 HTTP/1.1

(凡例)
△:空白文字

なお,リクエストラインおよびURLの構成についての詳細は,RFC 2616およびRFC 2396のドキュメントを参照してください。

表6-12の内容のうち,URL書き換えによって付加される(d)と(e)のパスパラメタのサイズの算出方法について説明します。

(d)のHTTPセッションのセッションIDを示すパスパラメタのサイズの算出方法
HTTPセッションのセッションIDを示すパスパラメタのサイズ(バイト)
 = ";jsessionid=" + <HTTPセッションのセッションID>
 =12バイト + <HTTPセッションのセッションIDのサイズ(バイト)>
注※
HTTPセッションのセッションIDの文字列長については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7 セッション管理機能」を参照してください。また,URLのパスパラメタの名称を「jsessionid」から変更している場合は,次の値の合計がパスパラメタのサイズとなります。
  • パスパラメタの文字数
  • セミコロン(;),およびイコール(=)の文字数
  • HTTPセッションのセッションIDの文字列長

(e)のグローバルセッションIDを示すパスパラメタのサイズの算出方法
グローバルセッションIDの送信に使用するパスパラメタの文字列長(バイト)
 = ";" + <グローバルセッションIDの送信に使用するパスパラメタ名のサイズ>
   + "=" + <グローバルセッションID>
 = 1バイト + <GIDURLParamNameパラメタに設定した文字列のサイズ(バイト)>
   + 1バイト + <グローバルセッションIDのサイズ(バイト)>
注※
グローバルセッションIDのサイズ(バイト)は,次の式で算出してください。
グローバルセッションIDのサイズ(バイト)
 = <HTTPセッションのセッションIDのサイズ(バイト)> + 16バイト

(3) リクエストラインの最大サイズの算出と設定

リクエストラインの最大サイズの設定方法について説明します。「(2) URL書き換え使用時のリクエストラインのサイズの算出」で算出した値を基に,最大サイズを設定してください。

設定方法は,使用するWebサーバによって異なります。

●Webサーバ連携でHTTP Serverを使用する場合

HTTP Serverを使用する場合は,HTTP Serverの定義ファイル(httpsd.conf)のLimitRequestLineディレクティブで設定します。デフォルトの設定では,8,190バイトです。

LimitRequestLineディレクティブの設定方法の詳細については,マニュアル「HTTP Server」を参照してください。

●Webサーバ連携でMicrosoft IISを使用する場合

Microsoft IISを使用する場合のリクエストラインの最大サイズの設定方法については,Microsoft IISのドキュメントを参照してください。

●インプロセスHTTPサーバを使用する場合

インプロセスHTTPサーバを使用する場合,リクエストラインの最大サイズは,簡易構築定義ファイルで設定します。

パラメタ名は,webserver.connector.inprocess_http.limit.max_request_lineです。webserver.connector.inprocess_http.limit.max_request_lineの値には,リクエストラインの終端を示す改行文字である,(CR(0x0d)+LF(0x0A))の2バイトを含めた値を指定してください。デフォルトの設定では,8,190バイトです。

簡易構築定義ファイルについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.6 簡易構築定義ファイル」を参照してください。