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

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

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

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

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

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

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

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

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

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

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

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

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

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

[図データ]

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

表7-11 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のドキュメントを参照してください。

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

(d)のHTTPセッションのセッションIDを示すパスパラメタのサイズの算出方法

HTTPセッションのセッションIDを示すパスパラメタのサイズ(バイト)
= ";jsessionid=" + <HTTPセッションのセッションID>
=12バイト + <HTTPセッションのセッションIDのサイズ(バイト)>

注※
HTTPセッションのセッションIDの文字列長については,マニュアル「Cosminexus アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)」の「2.7 セッション管理機能」を参照してください。
(e)のグローバルセッションIDを示すパスパラメタのサイズの算出方法

グローバルセッションIDの送信に使用するパスパラメタの文字列長(バイト)
= ";" + <グローバルセッションIDの送信に使用するパスパラメタ名のサイズ>
  + "=" + <グローバルセッションID>
= 1バイト + <GIDURLParamNameパラメタに設定した文字列のサイズ(バイト)>
  + 1バイト + <グローバルセッションIDのサイズ(バイト)>

注※
グローバルセッションIDのサイズ(バイト)は,次の式で算出してください。

グローバルセッションIDのサイズ(バイト)
= <HTTPセッションのセッションIDのサイズ(バイト)> + 16バイト

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

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

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

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

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

LimitRequestLineディレクティブの設定方法の詳細については,マニュアル「Hitachi Web 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バイトです。

簡易構築定義ファイルの設定方法については,マニュアル「Cosminexus アプリケーションサーバ システム構築・運用ガイド」の「8.4 システムの構成定義」を参照してください。