ADC

Cómo funciona la coincidencia de cadenas con conjuntos de patrones y conjuntos de datos

Un conjunto de patrones o conjunto de datos contiene un conjunto de patrones y a cada patrón se le asigna un índice único. Cuando se aplica una directiva a un paquete, una expresión identifica una cadena que se va a evaluar y el operador la compara con los patrones definidos en el conjunto de patrones o el conjunto de datos hasta que se encuentre una coincidencia o se hayan comparado todos los patrones. Luego, según su función, el operador devuelve un valor booleano que indica si se encontró un patrón coincidente o el índice del patrón que coincide con la cadena.

Nota: En este tema se explica el funcionamiento de un conjunto de patrones. Los conjuntos de datos funcionan de la misma manera. La única diferencia entre los conjuntos de patrones y los conjuntos de datos es el tipo de patrones definidos en el conjunto.

Tenga en cuenta el siguiente caso de uso para comprender cómo se pueden utilizar los patrones para la coincidencia de cadenas.

Desea determinar si el sufijo URL (texto de destino) contiene alguna de las extensiones del archivo de imagen. Sin usar conjuntos de patrones, tendría que definir una expresión compleja, de la siguiente manera:

HTTP.REQ.URL.SUFFIX.CONTAINS("svg") ¦¦ HTTP.REQ.URL.SUFFIX.CONTAINS("bmp") ¦¦ HTTP.REQ.URL.SUFFIX.CONTAINS("png") ¦¦
HTTP.REQ.URL.SUFFIX.CONTAINS("gif") ¦¦ HTTP.REQ.URL.SUFFIX.CONTAINS("tiff") ¦¦ HTTP.REQ.URL.SUFFIX.CONTAINS("jpg")
<!--NeedCopy-->

Si la URL tiene el sufijo “jpg” con la expresión compuesta anterior, el dispositivo NetScaler debe recorrer toda la expresión compuesta de forma secuencial, de una subexpresión a la siguiente, para determinar que la solicitud hace referencia a una imagen jpg. La siguiente ilustración muestra los pasos del proceso.

Imagen traducida

Cuando una expresión compuesta incluye cientos de subexpresiones, el proceso anterior consume muchos recursos. Una mejor alternativa es una expresión que invoca un conjunto de patrones, como se muestra en la siguiente ilustración.

Imagen traducida

Durante la evaluación de la directiva, como se muestra arriba, el operador (CONTAINS_ANY) compara la cadena identificada en la solicitud con los patrones definidos en el conjunto de patrones hasta que encuentra una coincidencia. Con la expresión Sample_Patset, las múltiples iteraciones de seis subexpresiones se reducen a una sola.

Al eliminar la necesidad de configurar expresiones compuestas que realizan la coincidencia de cadenas con varias operaciones OR, los conjuntos de patrones o conjuntos de datos simplifican la configuración y aceleran el procesamiento de solicitudes y respuestas.

Cómo funciona la coincidencia de cadenas con conjuntos de patrones y conjuntos de datos

En este artículo