Informationen zu Textausdrücken
Sie können verschiedene Ausdrücke für die Arbeit mit Text konfigurieren, der durch die NetScaler-Appliance fließt. Im Folgenden finden Sie einige Beispiele, wie Sie Text mithilfe eines erweiterten Richtlinienausdrucks analysieren können:
Stellen Sie fest, dass ein bestimmter HTTP-Header existiert.
Beispielsweise können Sie HTTP-Anfragen identifizieren, die einen bestimmten Accept-Language-Header enthalten, um die Anforderung an einen bestimmten Server zu leiten.
Bestimmen Sie, dass eine bestimmte HTTP-URL eine bestimmte Zeichenfolge enthält.
Beispielsweise möchten Sie möglicherweise Anfragen für bestimmte URLs blockieren. Beachten Sie, dass die Zeichenfolge am Anfang, in der Mitte oder am Ende einer anderen Zeichenfolge auftreten kann.
Identifizieren Sie eine POST-Anfrage, die an eine bestimmte Anwendung gerichtet ist.
Beispielsweise möchten Sie möglicherweise alle POST-Anfragen identifizieren, die an eine Datenbankanwendung gerichtet sind, um zwischengespeicherte Anwendungsdaten zu aktualisieren.
Beachten您dass es spezielle工具zum Anzeigendes Datenstroms für HTTP-Anfragen und -Antworten gibt. Sie können die Tools verwenden, um den Datenstrom anzuzeigen.
Informationen zu Operationen auf Text
Ein textbasierter Ausdruck besteht aus mindestens einem Präfix zur Identifizierung eines Datenelements und normalerweise (wenn auch nicht immer) einer Operation für dieses Präfix. Textbasierte Vorgänge können für jeden Teil einer Anfrage oder einer Antwort gelten. Zu den grundlegenden Operationen für Text gehören verschiedene Arten von Zeichenfolgenübereinstimmungen.
Zum Beispiel vergleicht der folgende Ausdruck einen Header-Wert mit einer Zeichenfolge:
http.req.header("myHeader").contains("some-text")
Die folgenden Ausdrücke sind Beispiele für den Abgleich eines Dateityps in einer Anforderung:
http.req.url.suffix.contains("jpeg")
http.req.url.suffix.eq("jpeg")
In den vorangegangenen Beispielen erlaubt der Operator “contains” eine teilweise Übereinstimmung und der EQ-Operator sucht nach einer exakten Übereinstimmung.
Andere Operationen sind verfügbar, um die Zeichenfolge vor der Auswertung zu formatieren. Sie können beispielsweise Textoperationen verwenden, um Anführungszeichen und Leerzeichen zu entfernen, die Zeichenfolge in Kleinbuchstaben umzuwandeln oder Zeichenfolgen zu verketten.
Hinweis:
Komplexe Operationen sind verfügbar, um einen auf Mustern basierenden Abgleich durchzuführen oder einen Textformattyp in einen anderen Typ zu konvertieren.
Weitere Informationen finden Sie in den folgenden Artikeln:
Compounding und Rangfolge in Textausdrücken
Sie können verschiedene Operatoren anwenden, um Textpräfixe oder Ausdrücke zu kombinieren. Beispielsweise verkettet der folgende Ausdruck die zurückgegebenen Werte jedes Präfixes:
http.req.hostname + http.req.url
Es folgt ein Beispiel für einen zusammengesetzten Textausdruck, der ein logisches UND verwendet. Beide Komponenten dieses Ausdrucks müssen TRUE sein, damit eine Anforderung mit dem Ausdruck übereinstimmt:
http.req.method.eq(post) && http.req.body(1024).startswith("destination=")
Hinweis:
Weitere Informationen zu Operatoren für die Compoundierung finden Sie unterZusammengesetzte erweiterte Ausdrücke.
Kategorien von Textausdrücken
Die Hauptkategorien von Textausdrücken, die Sie konfigurieren können, sind:
Informationen in HTTP-Headern, HTTP-URLs und dem POST-Text in HTTP-Anforderungen.
Weitere Informationen finden Sie unterAusdruckspräfixe für Text in HTTP-Anfragen und -Antworten.
Informationen zu einem VPN oder einem clientlosen VPN.
Weitere Informationen finden Sie unterAusdruckspräfixe für VPNs und clientlose VPNs.
TCP-Nutzlastinformationen.
Weitere Informationen zu TCP-Nutzlastausdrücken finden Sie unterErweiterte Richtlinienausdrücke: Analysieren von HTTP-, TCP- und UDP-Daten.
Text in einem SSL-Zertifikat (Secure Sockets Layer).
Informationen zu Textausdrücken für SSL- und SSL-Zertifikatsdaten finden Sie unterErweiterte Richtlinienausdrücke: Analysieren von SSL-ZertifikatenundAusdrücken für SSL-Zertifikatdaten.
Hinweis:
Das Analysieren eines Dokumentkörpers, z. B. des Hauptteils einer POST-Anforderung, kann sich auf die Leistung auswirken. Möglicherweise möchten Sie die Auswirkungen von Richtlinien auf die Leistung testen, die einen Dokumentenkörper bewerten.
Richtlinien für Textausdrücke
unt民主党Gesichtspunkt der Leistung是es typischerweise am besten, protokollbewusste Funktionen in einem Ausdruck zu verwenden. Der folgende Ausdruck verwendet beispielsweise eine protokollbewusste Funktion:
HTTP.REQ.URL.QUERY
Der vorherige Ausdruck schneidet besser ab als der folgende äquivalente Ausdruck, der auf dem Parsen von Zeichenfolgen basiert:
HTTP.REQ.URL.AFTER_STR("?")
Im ersten Fall betrachtet der Ausdruck speziell die URL-Abfrage. Im zweiten Fall scannt der Ausdruck die Daten auf das erste Auftreten eines Fragezeichens.
Es gibt auch einen Leistungsvorteil von strukturiertem Analysieren von Text, wie im folgenden Ausdruck:
HTTP.REQ.HEADER("Example").TYPECAST_LIST_T(',').GET(1)
(Weitere Informationen zum Typecasting finden Sie unterTypecasting von Daten. Der Typecast-Ausdruck, der kommagetrennte Daten sammelt und sie in eine Liste strukturiert, würde normalerweise besser funktionieren als das folgende unstrukturierte Äquivalent:
HTTP.REQ.HEADER("Example").AFTER_STR(",").BEFORE_STR(",")
Schließlich haben unstrukturierte Textausdrücke typischerweise eine bessere Leistung als reguläre Ausdrücke. Zum Beispiel ist das Folgende ein unstrukturierter Textausdruck:
HTTP.REQ.HEADER("Example").AFTER_STR("more")
Der vorherige Ausdruck würde im Allgemeinen eine bessere Leistung bieten als das folgende Äquivalent, bei dem ein regulärer Ausdruck verwendet wird:
HTTP.REQ.HEADER("Example").AFTER_REGEX(re/more/)
Weitere Informationen祖茂堂regularen Ausdrucken找到en Sie unterReguläre Ausdrücke.