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

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

2.22.1 URIのデコード機能の概要

URIのデコード機能を使用すると,アプリケーションサーバでは,リクエストURIのサーブレットパスおよび追加のパス情報に含まれるURLエンコードされた文字列がデコードされます。ただし,コンテキストパスはデコードされません。

デコードされたURIを使用しないWebアプリケーションを実行するときは,URIのデコード機能を使用しないように設定するか,Webアプリケーション側で対応する必要があります。

URIのデコード機能の使用時に影響があるServlet API,デコードされた文字列を使用する機能,デコード時に使用される文字コード,および文字列のデコードと正規化の実行順序を次に記述します。

<この項の構成>
(1) URIのデコード機能の使用時に影響があるServlet API
(2) デコードされた文字列を使用する機能
(3) デコード時に使用される文字コード
(4) 文字列のデコードと正規化の実行順序

(1) URIのデコード機能の使用時に影響があるServlet API

URIのデコード機能を使用する場合,javax.servlet.http.HttpServletRequestインタフェースの次のメソッドでは,デコードされたURIが戻り値となります。

ただし,getRequestURIメソッドおよびgetRequestURLメソッドでは,デコードされていないURLが戻り値となります。

(2) デコードされた文字列を使用する機能

URIのデコード機能を使用する場合,次に示すマッチング処理で,デコードされた文字列が使用されます。

ただし,コンテキストパスはデコードされないで,元の文字列のまま扱われるため,コンテキストルートと一致しない場合は「404 Not Found」が戻り値となります。

また,アプリケーションサーバの次の機能では,デコード後の文字列でのマッチングは行われません。

(3) デコード時に使用される文字コード

URIのデコード機能を使用する場合,デコード時に使用される文字コードはUTF-8です。

(4) 文字列のデコードと正規化の実行順序

クライアントから送信されたリクエストURIで,マッチングに利用されるURLは,デコードされたあとで正規化されます。