![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
Intelligent Management: operandos HTTP
Utilice los operandos HTTP en el generador del programa de utilidad de subexpresión, una herramienta opcional que le ayuda a crear condiciones de regla complejas a partir de las subexpresiones mediante el uso de AND, OR, NOT y la agrupación de paréntesis.
Reglas
Cada clase de trabajo contiene una lista opcional ordenada de reglas que se evalúan para una solicitud concreta para determinar la política de dicha solicitud. Cada regla está formada por una expresión booleana y un valor de política. Si la expresión se evalúa en true (verdadero) para una solicitud determinada, se utiliza la política asociada a dicha regla.
La sintaxis y la semántica de una expresión booleana para una regla son similares a la cláusula WHERE de una expresión de lenguaje de consulta estructurado (SQL). De forma más precisa, la sintaxis de una expresión se define mediante la especificación JMS (Java™ Message Service 1.1). Para obtener más información, consulte el tema sobre la clasificación de solicitudes basada en reglas.
En la especificación JMS, los identificadores hacen referencia a distintos atributos que se pueden asociar a una solicitud, por ejemplo, un parámetro de consulta específico, una cookie o una cabecera HTTP. Un identificador JMS se puede considerar como una variable de solicitud, u operando. Estos operandos pueden ser específicos para un protocolo. Por ejemplo, el nombre de servicio SOAP es un operando que sólo es válido en una clase de trabajo SOAP.
clienthost LIKE '%.ibm.com'
'%.ibm.com' es un literal que se utiliza para comparar con el nombre de host cliente para una solicitud. Esta expresión es true para todas las solicitudes que se originan a partir de un sistema del dominio ibm.com. Indique estos literales de serie entre comillas simples.
No indique los literales numéricos entre comillas simples. Los paréntesis junto con los operadores AND, OR y NOT también se pueden utilizar para formar expresiones booleanas compuestas. Consulte la especificación JMS 1.1 para ver una descripción detallada.Operandos de solicitud HTTP
Operando | Sintaxis | Descripción |
---|---|---|
Host de cliente |
clienthost | El nombre de host cliente plenamente cualificado. Este es el valor del nombre de host del mandato del protocolo Internet (IP). Este operando no admite operadores numéricos como >, >=, <, <=. |
IPV4 de cliente |
clientipv4 | La dirección IP de cliente que utiliza el tipo de dirección de cuatro elementos con puntos del Protocolo Internet de versión 4 (IPv4) n.n.n.n. |
IPV6 de cliente |
clientipv6 | El tipo de dirección de 128 bits x:x:x:x:x:x:x:x del Protocolo Internet versión 6 (IPv6) según la RFC (Request for Comments) 1924 del sistema cliente. |
Nombre de cookie |
cookie$<nombre> | Un nombre de cookie. Por ejemplo, la expresión cookie$My_Cookie_Name='My_Cookie_Value' prueba una solicitud para ver si contiene una
cookie denominada My_Cookie_Name con un valor de My_Cookie_Value. Para comprobar si existe o no un cookie determinado, utilice una de las expresiones siguientes:
|
Nombre de cabecera |
header $<nombre> | Nombre de cabecera y el valor. Por ejemplo, la expresión
header$Host='localhost' prueba una solicitud para ver si contiene
una cabecera de host HTTP con un valor de localhost.
Para probar la presencia o ausencia de la cabecera de host, utilice una de las siguientes expresiones:
|
Método HTTP |
HTTPMethod | El método HTTP de la solicitud. Los valores posibles son POST, GET, PUT y DELETE. |
Tipo MIME |
MIMEType | El tipo MIME de la solicitud. |
Porcentaje |
percentage$<val> | El operando de porcentaje se evalúa en true un
porcentaje fijo de tiempo. Por ejemplo, percentage$50 se evalúa en true el 50% del tiempo aproximadamente. |
Puerto |
port | El puerto de escucha en el cual se recibió la solicitud. |
Protocolo |
protocol | El protocolo de comunicaciones que transmite la solicitud. Los protocolos soportados actualmente son HTTP, HTTPS, SOAP y SOAPS. |
Parámetro de consulta |
queryparm$<nombre> | Nombre de cabecera y el valor. Por ejemplo, la expresión
queryparm$timezone='EST' prueba una solicitud para ver si la solicitud
contiene un parámetro de consulta HTTP denominado timezone con un valor de EST. Para comprobar si existe o no un parámetro de consulta, utilice uno de los siguientes formatos:
|
Rampup |
rampup$<horaInicio> $<horaFinalización> |
El operando rampup se evalúa en true un porcentaje
variable de tiempo. Siempre se evalúa en false antes de la
<horaInicio> y en true después de la
<horaFinalización>.
Cuando la hora avanza de la <horaInicio> hasta la
<horaFinalización>, se evalúa en true, un
porcentaje linealmente en aumento. El formato de <horaInicio> y <horaFinalización> es día/mes/año::hora:min:seg. donde día es el día del mes, mes es uno de los doce meses: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, año es el año de 4 dígitos, hora es la hora de 2 dígitos del reloj de 24 horas, y min y seg son los valores de 2 dígitos para los minutos y los segundos, respectivamente.Por ejemplo, rampup$01/Ene/2007::08:00:00$01/Ene/2007::17:00:00 empieza a evaluarse ocasionalmente en true a las 8 AM del 1 Ene 2007 y siempre se evalúa en true según la hora de finalización de rampup a las 5 PM del mismo día. |
Esquema de URI |
request.uri.scheme | El esquema del URI. |
Host de servidor |
serverhost | El nombre de host totalmente calificado del servidor. Este operando no admite operadores numéricos como >, >=, <, <=. |
IPV4 de servidor |
serveripv4 | La dirección IP del sistema servidor utilizando el tipo de dirección de cuatro elementos con puntos IPv4 n.n.n.n. |
IPV6 de servidor |
serveripv6 | El tipo de dirección de 128 bits de IPv6 x:x:x:x:x:x:x:x indicado a continuación de RFC 1924 del sistema servidor. |
Servicio |
service | El nombre de un servicio Web. |
Hora |
time | Se utiliza para definir la fecha y hora del día en que debe cumplirse una solicitud determinada. Los dos campos opcionales son StartTime y EndTime. Si se recibe una solicitud fuera de dicha ventana definida, la solicitud no se procesará. Los campos de fecha de hora de inicio y de hora de finalización tienen el formato siguiente: díadelasemana/díadelmes/mes/año::hora:minuto:segundo. Por ejemplo, el jueves 11 de abril del año 2007 a las 1:03:45 PM se especifica de este modo: Thu/11/Apr/2007::13:03:45 Los valores para díadelasemana son Sun, Mon, Tue, Wed, Thu, Fri, Sat y el rango de valores de díadelmes es de 1 a 31. El valor mes es un valor no numérico que representa los doce meses: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec. El valor de año consta de los cuatro dígitos del año. Por ejemplo, 2007. El valor de hora es la hora del día con el formato de 24 horas. Por ejemplo, 8am se representa como ::8. Los valores minuto y segundo son enteros que oscilan del 0 al 59. Nota: Las omisiones y los comodines no están soportados para el operando time.
La barra inclinada (/) se utiliza para separar los parámetros de fecha, los dos puntos (::) se utilizan para separar los parámetros de fecha y los dos puntos (:) se utilizan para separar los parámetros de hora del día. Tenga en cuenta que es el resultado booleano de la regla completa en la que se utiliza el operando time que determina la acción de direccionamiento que se llevará a cabo. |
URI |
uri | Identificador uniforme de recursos |
Host virtual |
virtualhost | El destino de host virtual de la solicitud, utilizado para configurar las aplicaciones web en un nombre de host determinado. |
Puerto virtual |
virtualport | El destino de puerto virtual de la solicitud, utilizado para configurar las aplicaciones web en un puerto determinado. |
Portal virtual |
virtualportal | Los portales virtuales se crean dentro de WebSphere Portal Server y Intelligent Management soporta este operando para una mejor integración con WebSphere Portal Server. El portal virtual es el URL de solicitud menos la raíz del contexto para el módulo web de la aplicación WebSphere Portal. Si una solicitud determinada coincide con el portal virtual definido, se emprende la acción de direccionamiento definida para dicha regla. |
Operandos de respuesta HTTP
Cuando esté utilizando un archivo de registro personalizado, puede utilizar los siguientes operandos además de los operandos en la Tabla 1:Operando | Sintaxis | Descripción |
---|---|---|
Código de respuesta |
response.code | Se filtra por los códigos de respuesta HTTP como, por ejemplo, 404, 503, etc. |
Tiempo de respuesta |
response.time | El número de milisegundos entre cuando se recibe la solicitud en el ODR y hasta que se envía la respuesta desde el ODR. |
Error de escritura de respuesta |
response.write.error | Los errores de registro que se pueden producir al escribir una respuesta a un cliente. |
Tiempo de servicio |
service.time | El número de milisegundos entre cuando se envía la solicitud al servidor de aplicaciones y cuando se recibe una respuesta desde el servidor de aplicaciones. |
Servidor de destino |
targetserver | Muestra el servidor donde se envió la solicitud en un formato WebSphere Application Server. Por ejemplo, mycell/mynode/myserver. |
Expresión Xpath
La sintaxis para la expresión XPath es xpathexpr y está soportada por HTTP.
La expresión de serie XPath tiene un campo obligatorio que contiene la expresión XPath y un campo opcional para definir los espacios de nombres locales. Si todos los espacios de nombres incluidos en la expresión XPath son estándar, el segundo campo puede ser opcional. Si hay varios espacios de nombres locales, sepárelos con una coma (,).
El ejemplo siguiente muestra una xpathexpr con una definición de espacio de nombres local:
xpathexpr$/http:Envelope/soap:Body/m:getTimeZone/n:clientId$n\\=http://test2.classify.ws.ibm.com
= \\'1000\\' or operation IS NOT NULL
En la expresión anterior, la expresión XPath es /http:Envelope/soap:Body/n:getTimeZone/n:clientId. Contiene el espacio de nombres local de n. Por lo tanto, el segundo campo de xpathexpr se define como n\\=http://test.classify.ws.ibm.com. El símbolo del dólar ($) se utiliza para indicar el inicio de una definición de campo. Las barras invertidas dobles son la secuencia de escape en este ejemplo. El primer símbolo de igual (=) tiene escape porque forma parte de la definición del espacio de nombres local, mientras que el segundo signo de igual (=) es el operador de la expresión de clasificación y no debe tener escape.
El ejemplo siguiente muestra una xpathexpr con dos espacios de nombres locales:
xpathexpr$/http:Envelope/http:Body/m:getTimeZone/n:clientId$m\\=http://test.classify.ws.ibm.com,n\\
=http://test2.classify.ws.ibm.com = \\'1000\\' or operation IS NOT NULL
Espacio de nombre | URL |
---|---|
soap | http://schemas.xmlsoap.org/soap/envelope/ |
soap-env | http://schemas.xmlsoap.org/soap/envelope/ |
soapenc | http://schemas.xmlsoap.org/soap/encoding/ |
soapbind | http://schemas.xmlsoap.org/wsdl/soap/ |
xsd | http://www.w3.org/2001/XMLSchema |
xsi | http://www.w3.org/2001/XMLSchema-instance |
xsi | http://ws-i.org/schemas/conformanceClaim/ |
wsdl | http://schemas.xmlsoap.org/wsdl/ |
Operadores
Intelligent Management soporta los operadores en la tabla siguiente en las expresiones de reglas. También se hace referencia a estos operadores como predicados en la terminología SQL porque aparecen dentro de una cláusula WHERE o HAVING. Los operadores no distinguen entre mayúsculas y minúsculas.
- Igual sin tener en cuenta mayúsculas y minúsculas (EQUALSIGNORECASE): idéntico a 'String = String', salvo que no se tienen en cuenta las mayúsculas o minúsculas de las series. Así, 'ABC' EQUALSIGNORECASE 'abc' se evaluaría como true. ('ABC' = 'abc') se evalúa como false.
- No igual ( <> ): el operador expresa que el valor del operando no es igual al valor que se especifique.
- En (IN): este operador expresa un operando con varios valores en una sola expresión. Por ejemplo, si, para un operando denominado puerto, desea expresar que el valor de puerto puede ser cualquier valor o todos los valores de tipo 9080, 9090, 9091, el fragmento de la expresión será puerto IN (9080,9090,9091). La forma como se expresen los valores dentro de los paréntesis depende del tipo de datos del puerto. Si el puerto es un entero, la sintaxis correcta es especificar los valores sin comillas. Si el puerto es una serie, la sintaxis correcta es puerto IN (‘9080’,‘9090’,‘9091’).
- Como (LIKE): este operador expresa la comparación de patrón para valores de operando de la serie. El valor debe contener el carácter comodín de signo de porcentaje (%) en la posición en la que empieza la comparación de patrones. Por ejemplo, la expresión host LIKE %blanca coincide con la palabra blanca o con cualquier otra palabra que finalice por blanca, mientras que la expresión host LIKE blanca% coincide con la palabra blanca o cualquier otra palabra que empiece por blanca, y la expresión host LIKE %blanca% coincide con la palabra blanca o con cualquier palabra que incluya la palabra blanca.
- Como sin tener en cuenta mayúsculas y minúsculas (LIKEIGNORECASE): idéntico a 'string like string', salvo que no se tienen en cuenta las mayúsculas y minúsculas de las series.
- No es nulo (IS NOT NULL): este operador expresa que una validación de la consulta muestra que el parámetro solicitado existe.
- Concatenar (+): este operador expresa la unión de dos series de caracteres: 'abc' + 'def' = 'abcdef'.
- Como en (LIKEIN): este operador expresa que la serie likein (string1, string2, string3, etc.) se evalúa como true si la serie a la izquierda de "likein" coincide con una o más de las series (stringN).
- Es nulo (IS NULL): Este operador expresa que una validación de la consulta muestra que el parámetro solicitado no existe.
- Igual a ( = ): el operador de igualdad expresa una coincidencia sensible a mayúsculas y minúsculas.