ADC

パターンセットとデータセットでの文字列マッチングの仕組み

パターンセットまたはデータセットには一連のパターンが含まれ、各パターンには固有のインデックスが割り当てられます。ポリシーをパケットに適用すると、評価する文字列が式で識別され、オペレータは、一致するものが見つかるか、すべてのパターンが比較されるまで、その文字列をパターンセットまたはデータセットで定義されているパターンと比較します。次に、演算子はその機能に応じて、一致するパターンが見つかったかどうかを示すブール値、または文字列に一致するパターンのインデックスのいずれかを返します。

注意:このトピックでは、パターンセットの仕組みについて説明します。データセットも同じように機能します。パターンセットとデータセットの唯一の違いは、セットで定義されているパターンのタイプです。

文字列マッチングにパターンをどのように使用できるかを理解するには、次の使用事例を検討してください。

URL サフィックス (ターゲットテキスト) に画像ファイル拡張子が含まれているかどうかを確認する必要があります。パターンセットを使用しない場合、次のように複雑な式を定義する必要があります。

HTTP.REQ.URL.SUFFIX.CONTAINS("svg") ¦¦ HTTP.REQ.URL.SUFFIX.CONTAINS("bmp") ¦¦ HTTP.REQ.URL.SUFFIX.CONTAINS("png") ¦¦
HTTP.REQ.URL.SUFFIX.CONTAINS("gif") ¦¦ HTTP.REQ.URL.SUFFIX.CONTAINS("tiff") ¦¦ HTTP.REQ.URL.SUFFIX.CONTAINS("jpg")
<!--NeedCopy-->

URLに上記の複合式を含むサフィックスが「jpg」の場合、NetScalerアプライアンスはリクエストがjpg画像を参照しているかどうかを判断するために、複合式全体をあるサブ式から次のサブ式へと順番に繰り返し処理する必要があります。次の図は、プロセスの手順を示しています。

ローカライズされた画像

複合式に何百ものサブ式が含まれる場合、上記の処理はリソースを大量に消費します。別の方法としては、次の図に示すように、パターンセットを呼び出す式があります。

ローカライズされた画像

前述のようにポリシーを評価する際、オペレータ (CONTAINS_ANY) は、一致するものが見つかるまで、リクエストで識別された文字列をパターンセットで定義されているパターンと比較します。Sample_Patset 式を使用すると、6 つのサブ式による複数回の反復が 1 回に減ります。

複数の OR 演算で文字列マッチングを実行する複合式を設定する必要がなくなるため、パターンセットまたはデータセットは構成を簡素化し、要求と応答の処理を高速化します。

パターンセットとデータセットでの文字列マッチングの仕組み

この記事の概要