-
-
Personalizar la configuración AppExpert
-
Configurar servicios y grupos de servicios para una unidad de aplicación
-
Configuración de 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 de 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 directivas avanzadas en una directiva
-
Configuración de expresiones de directivas avanzadas con nombre
-
Configuración de expresiones de directivas avanzadas fuera del contexto de una directiva
-
Expresiones de directivas avanzadas: trabajo con fechas, horas y números
-
Expresiones de directivas 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 de carga útil HTTP numéricos distintos de fechas
-
Operaciones de codificación HTTP, HTML y XML y caracteres «seguros»
-
Expresiones para evaluar un mensaje DNS e identificar su protocolo de portador
-
Expresiones de directivas avanzadas: análisis de certificados SSL
-
Expresiones de directivas avanzadas: direcciones IP y MAC, rendimiento, ID de VLAN
-
Expresiones de directivas avanzadas: funciones de Stream Analytics
-
Ejemplos de tutoriales de directivas avanzadas para reescritura
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!
Especifique el conjunto de caracteres en las expresiones
La infraestructura de directivas del dispositivo NetScaler admite los conjuntos de caracteres ASCII y UTF-8. El conjunto de caracteres predeterminado es ASCII. Si el tráfico para el que está configurando una expresión se compone únicamente de caracteres ASCII, no necesita especificar el conjunto de caracteres de la expresión. El dispositivo permite todos los literales de cadenas y caracteres que incluyan caracteres binarios. Sin embargo, los conjuntos de caracteres UTF-8 siguen requiriendo 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 se debe procesar los datos en el conjunto de caracteres especificado. Por ejemplo: En la expresión HTTP.REQ.BODY(1000).AFTER_REGEX(re/ejemplo siguiente/).BEFORE_REGEX(re/En el ejemplo anterior/).CONTAINS_ANY(“Greek_ alphabet”), 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) justo antes de la función CONTAINS_ANY(“<string>”) de esta 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 conjunto de caracteres para todo el procesamiento posterior (es decir, para todas las funciones posteriores) de la expresión, a menos que otra función SET_CHAR_SET () lo anule más adelante en la expresión que cambie 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) justo después de las funciones que identifican texto (por ejemplo, las funciones HEADER(“<name>”) o BODY(<int>)). 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 conjunto de caracteres ASCII, por lo que las expresiones configuradas para el conjunto de caracteres ASCII seguirán funcionando como se esperaba si cambias el juego 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 funcionar con los datos del conjunto de caracteres ASCII y el resto de las expresiones están configuradas para funcionar con los datos del conjunto de caracteres UTF-8, el conjunto de caracteres especificado para cada expresión individual se tiene en cuenta al evaluar las expresiones de forma individual. 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 conjunto de caracteres ASCII, mientras que la segunda expresión simple evalúa los datos del conjunto 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 NetScaler 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 NetScaler 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.
Especifique el conjunto de caracteres en función del conjunto de caracteres del tráfico
Puede configurar el conjunto de caracteres en UTF-8 en función de las características del tráfico. Si no está seguro de si el conjunto 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 comprueba primero el valor de “conjunto de caracteres” en el encabezado Content-Type de la solicitud para “UTF-8” antes de comprobar si los primeros 1000 bytes de 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 aparecen entre comillas simples (“’) y entre comillas (“”), respectivamente, se consideran literales en el juego de caracteres UTF-8. En una expresión determinada, si una función funciona con literales de caracteres o cadenas del conjunto de caracteres ASCII e incluye un carácter que no es ASCII en el literal, se devuelve un error.
Nota:
Los literales de cadena de las expresiones de directiva avanzadas ahora son tan largos como la expresión de directiva. Se permite que la expresión tenga una longitud de 1499 bytes u 8191 bytes.
Valores en formato hexadecimal y octal
Al configurar una expresión, puede introducir valores en formato octal y hexadecimal. Sin embargo, cada byte hexadecimal u octal se considera un byte UTF-8. Los bytes UTF-8 no válidos producen errores independientemente de si el valor se introduce manualmente o se pega desde el portapapeles. Por ejemplo, “\xce\x20” es un carácter UTF-8 no válido porque “c8” no puede ir seguido de “20” (cada byte de una cadena UTF-8 de varios bytes 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 espacio en blanco.
Funciones que devuelven cadenas UTF-8
Solo las <text>.XPATH_JSON
funciones text>.XPATH
y devuelven siempre cadenas UTF-8. Las siguientes rutinas de MYSQL determinan en tiempo de ejecución qué conjunto de caracteres se debe devolver, según 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>)
Ajustes de conexión de terminales para UTF-8
Al configurar una conexión al dispositivo NetScaler mediante una conexión de terminal (mediante PuTTY, por ejemplo), debe configurar el conjunto de caracteres para la transmisión de datos a UTF-8.
Funciones mínimas y máximas en una expresión de directiva avanzada
Las expresiones de directiva avanzadas admiten las funciones mínima y máxima que se indican a continuación.
-
(<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
- Especifique el conjunto de caracteres en función del conjunto de caracteres del tráfico
- Literales de caracteres y cadenas en expresiones
- Valores en formato hexadecimal y octal
- Funciones que devuelven cadenas UTF-8
- Ajustes de conexión de terminales 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.