-
-
Personnaliser la configuration d'AppExpert
-
Configuration des services et des groupes de services pour une unité d'application
-
Configurer des points de terminaison publics pour une application
-
Configurer des groupes de persistance pour les unités d'application
-
Afficher les applications AppExpert et configurer les entités à l'aide du visualiseur d'applications
-
Configuration de l'authentification, de l'autorisation et de l'audit des applications
-
-
Configuration de l'expression de stratégie avancée : mise en route
-
Spécification du jeu de caractères dans les expressions
-
Configuration des expressions de stratégie avancées dans une stratégie
-
Configuration des expressions de stratégie avancées en dehors du contexte d'une stratégie
-
Expressions de stratégie avancées : utilisation des dates, des heures et des nombres
-
Expressions de stratégie avancées : analyse des données HTTP, TCP et UDP
-
Expressions de stratégie avancées : analyse des certificats SSL
-
Expressions de stratégie avancées : adresses IP et MAC, débit, ID VLAN
-
Expressions de stratégie avancées : fonctions d'analyse de flux
-
-
Comportement de l'en-tête Content-length dans une stratégie de réécriture
-
Exemples d'actions et de stratégies de réécriture
-
Exemple 1 : Supprimer les anciens en-têtes X-Forwarded-For et Client-IP
-
Exemple 3 : Balisage des connexions sécurisées et non sécurisées
-
Exemple 6 : migration des règles du module de réécriture Apache
-
Exemple 8 : Redirection des requêtes vers le serveur interrogé
-
Exemple 11 : chiffrement RSA basé sur une stratégie sans remplissage
-
-
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!
Spécifier le jeu de caractères dans les expressions
L’infrastructure de stratégies de l’appliance prend en charge les jeux de caractères ASCII et UTF-8. Le jeu de caractères par défaut est ASCII. Si le trafic pour lequel vous configurez une expression se compose uniquement de caractères ASCII, vous n’avez pas besoin de spécifier le jeu de caractères dans l’expression. L’appliance autorise toutes les chaînes et tous les caractères littéraux, y compris les caractères binaires. Cependant, les jeux de caractères UTF-8 nécessitent toujours que la chaîne et les littéraux de caractères soient un UTF-8 valide.
CLIENT.TCP.PAYLOAD(100).CONTAINS("\xff\x02")
Dans une expression, la fonction SET_CHAR_SET() doit être introduite au point de l’expression après lequel le traitement des données doit être effectué dans le jeu de caractères spécifié. Par exemple, dans l’expression HTTP.REQ.BODY(1000).AFTER_REGEX(re/following example/).BEFORE_REGEX(re/In the preceding example/).CONTAINS_ANY(“Greek_ alphabet”), si les chaînes stockées dans le jeu de modèles “Greek_alphabet” sont au format UTF-8, vous devez inclure la fonction SET_CHAR_SET(UTF_8) immédiatement avant la fonction CONTAINS_ANY(“<string>”), comme suit :
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")
La fonction SET_CHAR_SET() définit le jeu de caractères pour tous les traitements ultérieurs (c’est-à-dire pour toutes les fonctions suivantes) dans l’expression, à moins qu’il ne soit remplacé ultérieurement dans l’expression par une autre fonction SET_CHAR_SET() qui modifie le jeu de caractères. Par conséquent, si toutes les fonctions d’une expression simple donnée sont destinées à l’UTF-8, vous pouvez inclure la fonction SET_CHAR_SET(UTF_8) immédiatement après les fonctions qui identifient du texte (par exemple, les fonctions HEADER(“<name>”) ou BODY(<int>)). Dans le deuxième exemple qui suit le premier paragraphe ci-dessus, si les arguments ASCII transmis aux fonctions AFTER_REGEX () et BEFORE_REGEX () sont remplacés par des chaînes UTF-8, vous pouvez inclure la fonction SET_CHAR_SET(UTF_8) immédiatement après la fonction BODY (1000), comme suit :
HTTP.REQ.BODY(1000).SET_CHAR_SET(UTF_8).AFTER_REGEX(re/Bücher/).BEFORE_REGEX(re/Wörterbuch/).CONTAINS_ANY("Greek_alphabet")
Le jeu de caractères UTF-8 étant un sur-ensemble du jeu de caractères ASCII, les expressions configurées pour le jeu de caractères ASCII continuent de fonctionner comme prévu si vous remplacez le jeu de caractères par UTF-8.
Expressions composées avec différents jeux de caractères
Dans une expression composée, si un sous-ensemble d’expressions est configuré pour fonctionner avec des données du jeu de caractères ASCII et que les autres expressions sont configurées pour fonctionner avec des données du jeu de caractères UTF-8, le jeu de caractères spécifié pour chaque expression individuelle est pris en compte lorsque les expressions sont évaluées individuellement. Toutefois, lors du traitement de l’expression composée, juste avant de traiter les opérateurs, l’appliance fait passer le jeu de caractères des valeurs ASCII renvoyées au format UTF-8. Par exemple, dans l’expression composée suivante, la première expression simple évalue les données du jeu de caractères ASCII tandis que la seconde expression simple évalue les données du jeu de caractères UTF-8 :
HTTP.REQ.HEADER("MyHeader") == HTTP.REQ.BODY(10).SET_CHAR_SET(UTF_8)
Toutefois, lors du traitement de l’expression composée, juste avant d’évaluer l’opérateur booléen « est égal à », l’appliance NetScaler transforme le jeu de caractères de la valeur renvoyée par HTTP.REQ.HEADER (« MyHeader ») en UTF-8.
La première expression simple de l’exemple suivant évalue les données du jeu de caractères ASCII. Toutefois, lorsque l’appliance NetScaler traite l’expression composée, juste avant de concaténer les résultats des deux expressions simples, elle transforme le jeu de caractères de la valeur renvoyée par HTTP.REQ.BODY (10) en UTF-8.
HTTP.REQ.BODY(10) + HTTP.REQ.HEADER("MyHeader").SET_CHAR_SET(UTF_8)
Par conséquent, l’expression composée renvoie des données dans le jeu de caractères UTF-8.
Spécifiez le jeu de caractères en fonction du jeu de caractères du trafic
Vous pouvez définir le jeu de caractères sur UTF-8 en fonction des caractéristiques du trafic. Si vous n’êtes pas sûr que le jeu de caractères du trafic évalué est UTF-8, vous pouvez configurer une expression composée dans laquelle la première expression vérifie le trafic UTF-8 et les expressions suivantes définissent le jeu de caractères en UTF-8. Voici un exemple d’expression composée qui vérifie d’abord la valeur de « charset » dans l’en-tête Content-Type de la requête pour « UTF-8 » avant de vérifier si les 1 000 premiers octets de la requête contiennent la chaîne UTF-8 Bücher :
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")
Si vous êtes certain que le jeu de caractères du trafic évalué est UTF-8, la deuxième expression de l’exemple est suffisante.
Littéraux de caractères et de chaînes dans les expressions
Lors de l’évaluation d’une expression, même si le jeu de caractères actuel est ASCII, les littéraux de caractères et les littéraux de chaîne, qui sont placés respectivement entre guillemets simples (« ») et entre guillemets (« »), sont considérés comme des littéraux dans le jeu de caractères UTF-8. Dans une expression donnée, si une fonction fonctionne sur des caractères ou des chaînes littéraux du jeu de caractères ASCII et que vous incluez un caractère non ASCII dans le littéral, une erreur est renvoyée.
Remarque :
Les littéraux de chaîne dans les expressions de stratégie avancées sont désormais aussi longs que l’expression de stratégie. La longueur de l’expression est autorisée à 1499 octets ou 8191 octets.
Valeurs aux formats hexadécimal et octal
Lorsque vous configurez une expression, vous pouvez entrer des valeurs aux formats octal et hexadécimal. Toutefois, chaque octet hexadécimal ou octal est considéré comme un octet UTF-8. Les octets UTF-8 non valides génèrent des erreurs, que la valeur soit saisie manuellement ou collée depuis le presse-papiers. Par exemple, “\xce\x20” est un caractère UTF-8 non valide car “c8” ne peut pas être suivi de “20” (chaque octet d’une chaîne UTF-8 multi-octets doit avoir le bit élevé). Un autre exemple de caractère UTF-8 non valide est « \ xce \ xa9 », car les caractères hexadécimaux sont séparés par un espace blanc.
Fonctions renvoyant des chaînes UTF-8
Seules les fonctions text>.XPATH
et <text>.XPATH_JSON
et renvoient toujours les chaînes UTF-8. Les routines MYSQL suivantes déterminent au moment de l’exécution le jeu de caractères à renvoyer, en fonction des données du protocole :
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>)
Paramètres de connexion du terminal pour UTF-8
Lorsque vous établissez une connexion à l’appliance NetScaler à l’aide d’une connexion terminal (à l’aide de PuTTY, par exemple), vous devez définir le jeu de caractères pour la transmission des données en UTF-8.
Fonctions minimales et maximales dans une expression de stratégie avancée
Les expressions de stratégie avancées prennent en charge les fonctions minimales et maximales ci-dessous.
-
(<expression1>.max(<expression2>)
- renvoie le maximum des deux valeurs. -
(<expression1>.min(<expression2>)
- renvoie le minimum des deux valeurs.
Partager
Partager
Dans cet article
- Expressions composées avec différents jeux de caractères
- Spécifiez le jeu de caractères en fonction du jeu de caractères du trafic
- Littéraux de caractères et de chaînes dans les expressions
- Valeurs aux formats hexadécimal et octal
- Fonctions renvoyant des chaînes UTF-8
- Paramètres de connexion du terminal pour UTF-8
- Fonctions minimales et maximales dans une expression de stratégie avancée
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.