Configuración de una llamada HTTP

Al configurar una llamada HTTP, especifique el tipo de solicitud (HTTP o HTTPS), el destino y el formato de la solicitud, el formato esperado de la respuesta y, finalmente, la parte de la respuesta que quiere analizar.

Para el destino, puede especificar la dirección IP y el puerto del agente de llamada HTTP o activar un servidor virtual de equilibrio de carga, cambio de contenido o redirección de caché para administrar las solicitudes de llamada HTTP. En el primer caso, las solicitudes de llamada HTTP se enviarán directamente al agente de llamada HTTP. En el segundo caso, las solicitudes de llamada HTTP se enviarán a la dirección IP virtual (VIP) del servidor virtual especificado. El servidor virtual procesará la solicitud de la misma manera que procesa una solicitud de cliente. Por ejemplo, si espera que se genere un gran número de llamadas, puede configurar instancias del agente de llamada HTTP en varios servidores, enlazar estas instancias (como servicios) a un servidor virtual de equilibrio de carga y, a continuación, especificar el servidor virtual de equilibrio de carga en la configuración de llamada HTTP. A continuación, el servidor virtual de equilibrio de carga equilibra la carga en las instancias configuradas según lo determinado por el algoritmo de equilibrio de carga.

Para el formato de la solicitud de llamada HTTP, puede especificar los atributos individuales de la solicitud de llamada HTTP (una llamada HTTP basada en atributos), o bien especificar toda la solicitud de llamada HTTP como expresión de sintaxis predeterminada (una llamada HTTP basada en expresiones).

Nota: El dispositivo no comprueba la validez de la solicitud. Debe asegurarse de que la solicitud es válida. Una configuración de llamada HTTP incorrecta o incompleta da como resultado una condición UNDEF en tiempo de ejecución que no está asociada a una acción. La condición UNDEF simplemente actualiza el contador de visitas no definidas, que le permite solucionar problemas de una llamada HTTP configurada incorrectamente. Sin embargo, el dispositivo analiza la solicitud de llamada HTTP para permitirle configurar determinadas funciones de Citrix ADC para la llamada. Esto puede conducir a una llamada HTTP que se invoca a sí misma. Para obtener información sobre la recursión de llamada y cómo evitarla, consulte Evitar la recursión de llamada HTTP.

Por último, independientemente de si utiliza atributos de solicitud HTTP o una expresión para definir el formato de la solicitud de llamada HTTP, debe especificar el formato de la respuesta del agente de llamada HTTP y la parte de la respuesta que quiere evaluar. La respuesta puede ser un valor booleano, un número o texto. La parte de la respuesta que quiere evaluar se especifica mediante una expresión. Por ejemplo, si especifica que la respuesta contiene texto, puede utilizarHTTP.RES.BODY(<unit>) `para especificar que el dispositivo debe evaluar solo los primeros <unit> bytes de la respuesta del agente de llamada.

En la línea de comandos, primero se crea una llamada HTTP mediante el comando add. Cuando se agrega una llamada, todos los parámetros se establecen en un valor predeterminado de NONE, excepto el método HTTP, que se establece en un valor predeterminado de GET. A continuación, configure los parámetros de la llamada mediante el comando set. El comando set se utiliza para configurar ambos tipos de llamadas (basadas en atributos y basadas en expresiones). La diferencia radica en los parámetros que se utilizan para configurar los dos tipos de llamadas. En consecuencia, las instrucciones de línea de comandos que siguen incluyen un comando set para configurar una llamada basada en atributos y un comando set para configurar una llamada basada en expresiones. En la utilidad de configuración, todas estas tareas de configuración se realizan en un solo cuadro de diálogo.

Nota: Antes de poner una llamada HTTP en una directiva, puede modificar todos los parámetros configurados excepto el tipo de devolución. Una vez que una llamada HTTP está en una directiva, no puede modificar completamente una expresión configurada en la llamada. Por ejemplo, no puede cambiar HTTP.REQ.HEADER (“myval”) a CLIENT.IP.SRC. Sin embargo, puede modificar los operadores y argumentos que se pasan a la expresión. Por ejemplo, puede cambiarHTTP.REQ.HEADER("myVal1") aHTTP.REQ.HEADER("myVal2") oHTTP.REQ.HEADER("myVal") aHTTP.REQ.HEADER("myVal").AFTER_STR(<string>). Si el comando set falla, cree una nueva llamada HTTP.

La configuración de llamada HTTP implica la configuración de expresiones de sintaxis predeterminadas. Para obtener más información acerca de la configuración de expresiones de sintaxis predeterminadas, consulte Configuración de expresiones de sintaxis predeterminadas: Introducción.

Para configurar una llamada HTTP mediante la interfaz de línea de comandos

En el símbolo del sistema, haga lo siguiente:

  1. Cree una llamada HTTP.

    add policy httpCallout <name>

    Ejemplo

    add policy httpCallout mycallout
    
  2. Configure los detalles de la llamada HTTP.

    • Para configurar una llamada HTTP basada en atributos, escriba:
    set policy httpCallout <name> [-IPAddress <ip_addr|ipv6_addr|\*>] [-port <port|\*>] [-vServer <string>] [-returnType <returnType>] [-httpMethod ( GET | POST )] [-hostExpr <string>] [-urlStemExpr <string>] [-headers <name(value)> ...] [-parameters <name(value)> ...] [-resultExpr <string>]
    

    Ejemplo:

    > set policy httpCallout mycallout -vserver lbv1 -returnType num -httpMethod GET -hostExpr 'http.req.header("Host")'
    -urlStemExpr "http.req.url" -parameters Name("My Name") -headers Name("MyHeader")
    -resultExpr "http.res.body(10000).length"
    
    

    Para configurar una llamada HTTP basada en expresiones, escriba:

    set policy httpCallout <name> [-vServer <string>] [-returnType <returnType>] [-httpMethod ( GET | POST )] [-fullReqExpr <string>] [-resultExpr <string>]
    

    Ejemplo:

    > set policy httpCallout mycallout1 -vserver lbv1 -returnType num -httpMethod GET
    -fullReqExpr q{"GET " + http.req.url + "HTTP/" + http.req.version.major + "." + http.req.version.minor.sub(1)+
    "r\nHost:10.101.10.10\r\nAccept: \*/\*\r\n\r\n"}
    
  3. Verifique las configuraciones de la llamada HTTP.

    show policy httpCallout <name>

Para configurar una llamada HTTP mediante la utilidad de configuración

  1. Vaya a AppExpert > Llamadas HTTP.
  2. En el panel de detalles, haga clic en Agregar.
  3. En el cuadro de diálogo Crear llamada HTTP, configure los parámetros de la llamada HTTP. Para obtener una descripción del parámetro, sitúe el cursor del ratón sobre la casilla de verificación.
  4. Haga clic en Create y, luego, en Close.