-
AppExpert Anwendungen und Vorlagen
-
Konfigurieren der Anwendungsauthentifizierung, -autorisierung und -überwachung
-
-
Konfigurieren des erweiterten Richtlinienausdrucks: Erste Schritte
-
Grundlegende Elemente eines erweiterten Richtlinienausdrucks
-
Festlegen des Zeichensatzes in Ausdrücken
-
Konfigurieren von erweiterten Richtlinienausdrücken in einer Richtlinie
-
Konfigurieren von benannten erweiterten Richtlinienausdrücken
-
Konfigurieren erweiterter Richtlinienausdrücke außerhalb des Kontexts einer Richtlinie
-
-
Erweiterte Richtlinienausdrücke: Arbeiten mit Datumsangaben, Uhrzeiten und Zahlen
-
Erweiterte Richtlinienausdrücke: Analysieren von HTTP-, TCP- und UDP-Daten
-
Ausdrücke zur Identifizierung des Protokolls in einem eingehenden IP-Paket
-
Ausdrücke für HTTP-Statuscodes und numerische HTTP-Nutzlastdaten außer Datumsangaben
-
Operationen für HTTP-, HTML- und XML-Kodierung und „sichere“ Zeichen
-
Ausdrücke zum Auswerten einer DNS-Nachricht und Identifizieren des Trägerprotokolls
-
Erweiterte Richtlinienausdrücke: Analysieren von SSL-Zertifikaten
-
Erweiterte Richtlinienausdrücke: IP- und MAC-Adressen, Durchsatz, VLAN-IDs
-
Erweiterte Richtlinienausdrücke: Stream Analytics-Funktionen
-
Zusammenfassende Beispiele für Standard-Syntaxausdrücke und -richtlinien
-
Tutorialbeispiele für Standard-Syntaxrichtlinien für das Umschreiben
-
Migration von Apache mod_rewrite Regeln auf die Standardsyntax
-
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
Festlegen des Zeichensatzes in Ausdrücken
Die Richtlinieninfrastruktur auf der Citrix ADC Appliance unterstützt ASCII- und UTF-8-Zeichensätze. Der Standardzeichensatz ist ASCII. Wenn der Datenverkehr, für den Sie einen Ausdruck konfigurieren, nur aus ASCII-Zeichen besteht, müssen Sie den Zeichensatz im Ausdruck nicht angeben. Die Appliance erlaubt alle Zeichenfolgen- und Zeichenliterale, die binäre Zeichen enthalten. Die UTF-8-Zeichensätze erfordern jedoch immer noch die Zeichenfolgen- und Zeichenliterale, um ein gültiges UTF-8 zu sein.
CLIENT.TCP.PAYLOAD(100).CONTAINS("\xff\x02")
In einem Ausdruck muss die Funktion SET_CHAR_SET () an der Stelle des Ausdrucks eingeführt werden, nach der die Datenverarbeitung im angegebenen Zeichensatz durchgeführt werden muss. Beispielsweise müssen Sie im Ausdruck HTTP.REQ.BODY (1000) .AFTER_REGEX (re/folgendes Beispiel/) .BEFORE_REGEX (re/im vorhergehenden Beispiel/) .CONTAINS_ANY (Greek_ alphabet), wenn die im Mustersatz Greek_alphabet gespeicherten Strings in UTF-8 enthalten sind, die SET_CHAR_SET (UTF_8) Funktion unmittelbar vor der <string> Funktion CONTAINS_ANY ( ) wie folgt:
HTTP.REQ.BODY(1000).AFTER_REGEX(re/following example/).BEFORE_REGEX(re/In the preceding example/).SET_CHAR_SET(UTF_8).CONTAINS_ANY("Greek_ alphabet")
Die Funktion SET_CHAR_SET () setzt den Zeichensatz für die weitere Verarbeitung (d. h. für alle nachfolgenden Funktionen) im Ausdruck, es sei denn, er wird später im Ausdruck durch eine andere SET_CHAR_SET () -Funktion überschrieben, die den Zeichensatz ändert. Wenn also alle Funktionen eines bestimmten einfachen Ausdrucks für UTF-8 vorgesehen sind, können Sie die Funktion SET_CHAR_SET (UTF_8) unmittelbar nach Funktionen einschließen, die Text identifizieren (z. B. die <name> <int> Funktionen HEADER ( ) oder BODY ()). Wenn die ASCII-Argumente, die an die Funktionen AFTER_REGEX () und BEFORE_REGEX () übergeben werden, in UTF-8-Zeichenfolgen geändert werden, können Sie die Funktion SET_CHAR_SET (UTF_8) unmittelbar nach der Funktion BODY (1000) wie folgt einschließen:
HTTP.REQ.BODY(1000).SET_CHAR_SET(UTF_8).AFTER_REGEX(re/Bücher/).BEFORE_REGEX(re/Wörterbuch/).CONTAINS_ANY("Greek_alphabet")
Der UTF-8-Zeichensatz ist eine Obermenge des ASCII-Zeichensatzes. Daher funktionieren Ausdrücke, die für den ASCII-Zeichensatz konfiguriert sind, wie erwartet, wenn Sie den Zeichensatz in UTF-8 ändern.
Zusammengesetzte Ausdrücke mit verschiedenen Zeichensätzen
Wenn in einem zusammengesetzten Ausdruck eine Teilmenge von Ausdrücken so konfiguriert ist, dass sie mit Daten im ASCII-Zeichensatz arbeitet und die restlichen Ausdrücke so konfiguriert sind, dass sie mit Daten im UTF-8-Zeichensatz arbeiten, wird der für jeden einzelnen Ausdruck angegebene Zeichensatz berücksichtigt, wenn die Ausdrücke ausgewertet werden einzeln. Bei der Verarbeitung des zusammengesetzten Ausdrucks wird jedoch kurz vor der Verarbeitung der Operatoren der Zeichensatz der zurückgegebenen ASCII-Werte auf UTF-8 heraufstuft. Beispiel: Im folgenden zusammengesetzten Ausdruck wertet der erste einfache Ausdruck Daten im ASCII-Zeichensatz aus, während der zweite einfache Ausdruck Daten im UTF-8-Zeichensatz auswertet:
HTTP.REQ.HEADER("MyHeader") == HTTP.REQ.BODY(10).SET_CHAR_SET(UTF_8)
Bei der Verarbeitung des zusammengesetzten Ausdrucks wird jedoch kurz vor der Auswertung des booleschen Operators is equal to die Citrix ADC Appliance den Zeichensatz des von HTTP.REQ.HEADER (MyHeader) zurückgegebenen Werts zu UTF-8 heraufstuft.
Der erste einfache Ausdruck im folgenden Beispiel wertet Daten im ASCII-Zeichensatz aus. Wenn die Citrix ADC Appliance den zusammengesetzten Ausdruck jedoch unmittelbar vor dem Verketten der Ergebnisse der beiden einfachen Ausdrücke verarbeitet, fördert die Appliance den Zeichensatz des von HTTP.REQ.BODY (10) zurückgegebenen Werts zu UTF-8.
HTTP.REQ.BODY(10) + HTTP.REQ.HEADER("MyHeader").SET_CHAR_SET(UTF_8)
Daher gibt der zusammengesetzte Ausdruck Daten im UTF-8-Zeichensatz zurück.
Festlegen des Zeichensatzes basierend auf dem Zeichensatz des Datenverkehrs
Sie können den Zeichensatz auf UTF-8 basierend auf Verkehrsmerkmalen festlegen. Wenn Sie nicht sicher sind, ob der Zeichensatz des ausgewerteten Datenverkehrs UTF-8 ist, können Sie einen zusammengesetzten Ausdruck konfigurieren, in dem der erste Ausdruck auf UTF-8-Datenverkehr überprüft und nachfolgende Ausdrücke den Zeichensatz auf UTF-8 setzen. Es folgt ein Beispiel für einen zusammengesetzten Ausdruck, der zuerst den Wert von charset im Content-Type-Header der Anforderung für UTF-8 überprüft, bevor überprüft wird, ob die ersten 1000 Bytes in der Anforderung die UTF-8-Zeichenfolge Bücher enthalten:
HTTP.REQ.HEADER("Content-Type").SET_TEXT_MODE(IGNORECASE).TYPECAST_NVLIST_T('=', '; ', '"').VALUE("charset").EQ("UTF-8") && HTTP.REQ.BODY(1000).SET_CHAR_SET(UTF_8).CONTAINS("Bücher")
Wenn Sie sicher sind, dass der Zeichensatz des ausgewerteten Datenverkehrs UTF-8 ist, ist der zweite Ausdruck im Beispiel ausreichend.
Zeichen- und Zeichenfolgenliterale in Ausdrücken
Auch wenn der aktuelle Zeichensatz ASCII ist, werden während der Ausdrucksauswertung Zeichenliterale und Zeichenfolgenliterale, die in einfache Anführungszeichen (‘) und Anführungszeichen () eingeschlossen sind, als Literale im UTF-8-Zeichensatz betrachtet. Wenn in einem bestimmten Ausdruck eine Funktion für Zeichen- oder Zeichenfolgenliterale im ASCII-Zeichensatz arbeitet und Sie ein Nicht-ASCII-Zeichen in das Literal einfügen, wird ein Fehler zurückgegeben.
Hinweis:
Die Zeichenfolgenliterale in erweiterten Richtlinienausdrücken sind jetzt so lang wie der Richtlinienausdruck. Der Ausdruck darf 1499 Bytes oder 8191 Bytes lang sein.
Werte im Hexadezimal- und Oktalformat
Beim Konfigurieren eines Ausdrucks können Sie Werte in oktaler und hexadezimaler Form eingeben. Jedes hexadezimale oder oktales Byte gilt jedoch als UTF-8-Byte. Ungültige UTF-8-Bytes führen zu Fehlern, unabhängig davon, ob der Wert manuell eingegeben oder aus der Zwischenablage eingefügt wird. Beispiel: “\xce\x20” ist ein ungültiges UTF-8-Zeichen, da “c8” nicht von “20” gefolgt werden kann (jedes Byte in einem Multi-Byte-UTF-8-String muss das hohe Bit gesetzt haben). Ein weiteres Beispiel für ein ungültiges UTF-8-Zeichen ist xce xa9, da die hexadezimalen Zeichen durch ein Leerzeichen getrennt sind.
Funktionen, die UTF-8-Strings zurückgeben
Nur die text>.XPATH
Funktionen <text>.XPATH_JSON
und geben immer UTF-8-Strings zurück. Die folgenden MYSQL-Routinen bestimmen zur Laufzeit, welcher Zeichensatz zurückgegeben werden soll, abhängig von den Daten im Protokoll:
MYSQL_CLIENT_T.USER
MYSQL_CLIENT_T.DATABASE
MYSQL_REQ_QUERY_T.COMMAND
MYSQL_REQ_QUERY_T.TEXT
MYSQL_REQ_QUERY_T.TEXT(<unsigned int>)
MYSQL_RES_ERROR_T.SQLSTATE
MYSQL_RES_ERROR_T.MESSAGE
MYSQL_RES_FIELD_T.CATALOG
MYSQL_RES_FIELD_T.DB
MYSQL_RES_FIELD_T.TABLE
MSQL_RES_FIELD_T.ORIGINAL_TABLE
MYSQL_RES_FIELD_T.NAME
MYSQL_RES_FIELD_T.ORIGINAL_NAME
MYSQL_RES_OK_T.MESSAGE
MYSQL_RES_ROW_T.TEXT_ELEM(<unsigned int>)
Terminalverbindungseinstellungen für UTF-8
Wenn Sie eine Verbindung zur Citrix ADC Appliance mithilfe einer Terminalverbindung (z. B. mithilfe von PuTTY) einrichten, müssen Sie den Zeichensatz für die Übertragung von Daten an UTF-8 festlegen.
Minimale und maximale Funktionen in einem erweiterten Richtlinienausdruck
Die erweiterten Richtlinienausdrücke unterstützen die folgenden minimalen und maximalen Funktionen.
-
(<expression1>.max(<expression2>)
- gibt das Maximum der beiden Werte zurück. -
(<expression1>.min(<expression2>)
- gibt das Minimum der beiden Werte zurück.
Teilen
Teilen
In diesem Artikel
- Zusammengesetzte Ausdrücke mit verschiedenen Zeichensätzen
- Festlegen des Zeichensatzes basierend auf dem Zeichensatz des Datenverkehrs
- Zeichen- und Zeichenfolgenliterale in Ausdrücken
- Werte im Hexadezimal- und Oktalformat
- Funktionen, die UTF-8-Strings zurückgeben
- Terminalverbindungseinstellungen für UTF-8
- Minimale und maximale Funktionen in einem erweiterten Richtlinienausdruck
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.