-
Aplicaciones y plantillas de AppExpert
-
Personalizar la configuración de AppExpert
-
Configurar servicios y grupos de servicios para una unidad de aplicación
-
Configurar dispositivos de punto final públicos para una aplicación
-
Especificar el orden de evaluación de las unidades de aplicación
-
Configurar grupos de persistencia para unidades de aplicación
-
Ver aplicaciones AppExpert y configurar entidades mediante el visualizador de aplicaciones
-
Configurar la autenticación, la autorización y la auditoría de aplicaciones
-
-
Configuración de la expresión de directiva avanzada: Introducción
-
Especificación del juego de caracteres en expresiones
-
Configuración de expresiones de directiva avanzadas en una directiva
-
Configuración de expresiones de directiva avanzadas con nombre
-
Configuración de Expresiones Avanzadas de Directiva Fuera del Contexto de una Directiva
-
Expresiones de directiva avanzadas: Trabajar con fechas, horas y números
-
Expresiones de directiva avanzadas: Análisis de datos HTTP, TCP y UDP
-
Expresiones para identificar el protocolo en un paquete IP entrante
-
Expresiones para códigos de estado HTTP y datos numéricos de carga HTTP distintos de fechas
-
Operaciones para codificación HTTP, HTML y XML y caracteres "seguros"
-
Expresiones para evaluar un mensaje DNS e identificar su protocolo portadora
-
Expresiones de directiva avanzadas: Análisis de certificados SSL
-
Expresiones de directivas avanzadas: Direcciones IP y MAC, rendimiento, ID de VLAN
-
Expresiones de directiva avanzadas: Funciones de análisis de flujo
-
Ejemplos de resumen de expresiones y directivas de sintaxis predeterminadas
-
Ejemplos de tutoriales de directivas de sintaxis predeterminadas para reescribir
-
Migración de las reglas mod_rewrite de Apache a la sintaxis predeterminada
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!
Especificar el juego de caracteres en expresiones
La infraestructura de directivas del dispositivo Citrix ADC admite conjuntos de caracteres ASCII y UTF-8. El juego de caracteres predeterminado es ASCII. Si el tráfico para el que está configurando una expresión consta solo de caracteres ASCII, no es necesario especificar el juego de caracteres en la expresión. El dispositivo permite todos los literales de cadena y caracteres que incluyen caracteres binarios. Sin embargo, los conjuntos de caracteres UTF-8 todavía requieren que la cadena y los literales de caracteres sean un UTF-8 válido.
CLIENT.TCP.PAYLOAD(100).CONTAINS("\xff\x02")
En una expresión, la función SET_CHAR_SET () debe introducirse en el punto de la expresión después del cual el procesamiento de datos debe llevarse a cabo en el juego de caracteres especificado. Por ejemplo, en la expresión HTTP.REQ.BODY (1000).AFTER_REGEX (re/siguiente ejemplo/).BEFORE_REGEX (RE/en el ejemplo anterior/).CONTAINS_ANY (“alfabeto griego”), si las cadenas almacenadas en el conjunto de patrones “Greek_Alphabet” están en UTF-8, debe incluir la función SET_CHAR_SET(UTF_8) inmediatamente antes de la función CONTAINS_ANY (“<string>”), de la siguiente manera:
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 función SET_CHAR_SET() establece el juego de caracteres para todo el procesamiento posterior (es decir, para todas las funciones posteriores) de la expresión, a menos que sea reemplazado posteriormente en la expresión por otra función SET_CHAR_SET() que cambia el juego de caracteres. Por lo tanto, si todas las funciones de una expresión simple determinada están destinadas a UTF-8, puede incluir la función SET_CHAR_SET(UTF_8) inmediatamente después de las funciones que identifican texto (por ejemplo, las funciones HEADER(“<name>”) o BODY(<int>) functions). En el segundo ejemplo que sigue al primer párrafo anterior, si los argumentos ASCII pasados a las funciones AFTER_REGEX () y BEFORE_REGEX() se cambian a cadenas UTF-8, puede incluir la función SET_CHAR_SET(UTF_8) inmediatamente después de la función BODY (1000), de la siguiente manera:
HTTP.REQ.BODY(1000).SET_CHAR_SET(UTF_8).AFTER_REGEX(re/Bücher/).BEFORE_REGEX(re/Wörterbuch/).CONTAINS_ANY("Greek_alphabet")
El juego de caracteres UTF-8 es un superconjunto del juego de caracteres ASCII, por lo que las expresiones configuradas para el juego de caracteres ASCII continúan funcionando como se esperaba si cambia el conjunto de caracteres a UTF-8.
Expresiones compuestas con diferentes conjuntos de caracteres
En una expresión compuesta, si un subconjunto de expresiones está configurado para trabajar con datos en el conjunto de caracteres ASCII y el resto de las expresiones están configuradas para trabajar con datos en el conjunto de caracteres UTF-8, el conjunto de caracteres especificado para cada expresión individual se considera cuando se evalúan las expresiones individualmente. Sin embargo, al procesar la expresión compuesta, justo antes de procesar los operadores, el dispositivo promueve el conjunto de caracteres de los valores ASCII devueltos a UTF-8. Por ejemplo, en la siguiente expresión compuesta, la primera expresión simple evalúa los datos del juego de caracteres ASCII mientras que la segunda expresión simple evalúa los datos del juego de caracteres UTF-8:
HTTP.REQ.HEADER("MyHeader") == HTTP.REQ.BODY(10).SET_CHAR_SET(UTF_8)
Sin embargo, al procesar la expresión compuesta, justo antes de evaluar el operador booleano “es igual a”, el dispositivo Citrix ADC promueve el conjunto de caracteres del valor devuelto por HTTP.REQ.HEADER (“MyHeader”) a UTF-8.
La primera expresión simple del siguiente ejemplo evalúa los datos del juego de caracteres ASCII. Sin embargo, cuando el dispositivo Citrix ADC procesa la expresión compuesta, justo antes de concatenar los resultados de las dos expresiones simples, el dispositivo promueve el conjunto de caracteres del valor devuelto por HTTP.REQ.BODY(10) a UTF-8.
HTTP.REQ.BODY(10) + HTTP.REQ.HEADER("MyHeader").SET_CHAR_SET(UTF_8)
Por lo tanto, la expresión compuesta devuelve datos en el conjunto de caracteres UTF-8.
Especificar el juego de caracteres basado en el juego de caracteres del tráfico
Puede establecer el conjunto de caracteres en UTF-8 en función de las funciones del tráfico. Si no está seguro de si el juego de caracteres del tráfico que se está evaluando es UTF-8, puede configurar una expresión compuesta en la que la primera expresión compruebe el tráfico UTF-8 y las expresiones posteriores establezcan el conjunto de caracteres en UTF-8. A continuación se muestra un ejemplo de una expresión compuesta que primero comprueba el valor de “charset” en el encabezado Content-Type de la solicitud para “UTF-8” antes de comprobar si los primeros 1000 bytes en la solicitud contienen la cadena 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 está seguro de que el conjunto de caracteres del tráfico que se está evaluando es UTF-8, la segunda expresión del ejemplo es suficiente.
Literales de caracteres y cadenas en expresiones
Durante la evaluación de expresiones, incluso si el conjunto de caracteres actual es ASCII, los literales de caracteres y los literales de cadena, que están entre comillas simples (‘’) y comillas (“”), respectivamente, se consideran literales en el conjunto de caracteres UTF-8. En una expresión dada, si una función está operando en literales de caracteres o cadenas en el conjunto de caracteres ASCII e incluye un carácter no ASCII en el literal, se devuelve un error.
Nota:
Los literales de cadena en expresiones de directiva avanzadas son ahora tan largos como la expresión de directiva. Se permite que la expresión tenga 1499 bytes u 8191 bytes de longitud.
Valores en formatos hexadecimales y octales
Al configurar una expresión, puede introducir valores en formatos octal y hexadecimal. Sin embargo, cada byte hexadecimal u octal se considera un byte UTF-8. Los bytes UTF-8 no válidos generan errores independientemente de si el valor se introduce manualmente o se pega desde el portapapeles. Por ejemplo, “xcex20” es un carácter UTF-8 no válido porque “c8” no puede ir seguido de “20” (cada byte en una cadena UTF-8 multibyte debe tener el bit alto establecido). Otro ejemplo de un carácter UTF-8 no válido es “xce xa9”, ya que los caracteres hexadecimales están separados por un carácter de espacio en blanco.
Funciones que devuelven cadenas UTF-8
Solo lastext>.XPATH
funciones<text>.XPATH_JSON
y siempre devuelven cadenas UTF-8. Las siguientes rutinas MYSQL determinan en tiempo de ejecución qué juego de caracteres devolver, en función de los datos del protocolo:
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>)
Configuración de conexión de terminal para UTF-8
Al configurar una conexión con el dispositivo Citrix ADC mediante una conexión de terminal (por ejemplo, mediante PuTTY), debe establecer el juego de caracteres para la transmisión de datos en UTF-8.
Funciones mínimas y máximas en una expresión de directiva avanzada
Las expresiones de directiva avanzadas admiten las funciones mínimas y máximas siguientes.
-
(<expression1>.max(<expression2>)
: Devuelve el máximo de los dos valores. -
(<expression1>.min(<expression2>)
: Devuelve el mínimo de los dos valores.
Compartir
Compartir
En este artículo
- Expresiones compuestas con diferentes conjuntos de caracteres
- Especificar el juego de caracteres basado en el juego de caracteres del tráfico
- Literales de caracteres y cadenas en expresiones
- Valores en formatos hexadecimales y octales
- Funciones que devuelven cadenas UTF-8
- Configuración de conexión de terminal para UTF-8
- Funciones mínimas y máximas en una expresión de directiva avanzada
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.