ADC

So funktioniert der Zeichenkettenabgleich mit Mustersätzen und Datensätzen

Ein Mustersatz oder Datensatz enthält einen Satz von Mustern, und jedem Muster wird ein eindeutiger Index zugewiesen. Wenn eine Richtlinie auf ein Paket angewendet wird, identifiziert ein Ausdruck eine auszuwertende Zeichenfolge, und der Operator vergleicht die Zeichenfolge mit den im Mustersatz oder Datensatz definierten Mustern, bis eine Übereinstimmung gefunden wird oder alle Muster verglichen wurden. Dann gibt der Operator je nach Funktion entweder einen booleschen Wert zurück, der angibt, ob ein passendes Muster gefunden wurde oder nicht, oder den Index des Musters, das der Zeichenfolge entspricht.

Hinweis: In diesem Thema wird die Funktionsweise eines Mustersatzes erläutert. Datensätze funktionieren auf die gleiche Weise. Der einzige Unterschied zwischen Mustersätzen und Datensätzen ist die Art der im Satz definierten Muster.

Betrachten Sie den folgenden Anwendungsfall, um zu verstehen, wie Muster für den Zeichenfolgenabgleich verwendet werden können.

Sie möchten feststellen, ob das URL-Suffix (Zieltext) eine der Bilddateierweiterungen enthält. Ohne Mustersätze zu verwenden, müssten Sie einen komplexen Ausdruck wie folgt definieren:

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-->

Wenn die URL das Suffix „jpg“ mit dem obigen zusammengesetzten Ausdruck hat, muss die NetScaler-Appliance den gesamten zusammengesetzten Ausdruck sequentiell von einem Unterausdruck zum nächsten durchlaufen, um festzustellen, dass sich die Anfrage auf ein JPG-Bild bezieht. Die folgende Abbildung zeigt die Schritte des Prozesses.

lokalisiertes Bild

Wenn ein zusammengesetzter Ausdruck Hunderte von Unterausdrücken enthält, ist der obige Prozess ressourcenintensiv. Eine bessere Alternative ist ein Ausdruck, der einen Mustersatz aufruft, wie in der folgenden Abbildung dargestellt.

lokalisiertes Bild

Während der Richtlinienauswertung, wie oben gezeigt, vergleicht der Operator (CONTAINS_ANY) die in der Anfrage identifizierte Zeichenfolge mit den im Mustersatz definierten Mustern, bis eine Übereinstimmung gefunden wird. Mit dem Ausdruck Sample_Patset werden die mehrfachen Iterationen durch sechs Unterausdrücke auf nur einen reduziert.

Da keine zusammengesetzten Ausdrücke konfiguriert werden müssen, die einen Zeichenfolgenabgleich mit mehreren OR-Operationen durchführen, vereinfachen Mustersätze oder Datensätze die Konfiguration und beschleunigen die Verarbeitung von Anfragen und Antworten.

So funktioniert der Zeichenkettenabgleich mit Mustersätzen und Datensätzen

In diesem Artikel