Información de referencia de la API del proxy de almacenamiento en caché

Utilice la información acerca de las API de Caching Proxy como ayuda para escribir los programas.

Variables

Al escribir programas API, puede utilizar variables de proxy de almacenamiento en caché que proporcionan información sobre el cliente remoto y el sistema servidor.

Notas:
  • Los nombres de variables definidos por el usuario no pueden tener el prefijo SERVER_. La función API del proxy de almacenamiento en caché reserva cualquier variable que comience por SERVER_ para el servidor y, por lo tanto, estas variables son de solo lectura. Además, los prefijos HTTP_ y PROXY_ también se reservan para cabeceras HTTP.
  • Todos las cabeceras de solicitud enviadas por el cliente (como Set-Cookie) tienen el prefijo HTTP_ y sus valores se pueden extraer. Para acceder a las variables que son encabezados de solicitud, anteponga HTTP_ al nombre de la variable. También puede crear nuevas variables utilizando la función predefinida httpd_setvar(). Para obtener más información sobre estos encabezados, consulte Códigos de retorno de funciones y macros predefinidas.
  • Se utilizan dos prefijos de variables, HTTP_ y PROXY_, para indicar si una variable es aplicable a cabeceras para la solicitud o para la respuesta. El prefijo HTTP_ hace referencia a las variables que fluyen entre el cliente y el proxy de almacenamiento en caché. El prefijo PROXY_ hace referencia a las variables que fluyen entre el proxy de almacenamiento en caché y el servidor de origen (o el siguiente servidor de una cadena de proxies). Estas variables sólo son válidas durante los pasos de proceso de solicitudes.
    • La extracción de una variable HTTP_* genera el valor de una cabecera que estaba en la solicitud del cliente al servidor proxy.
    • Al establecer una variable HTTP_* se establece la cabecera de respuesta que se envía del servidor proxy al cliente.
    • La extracción de una variable PROXY_* genera el valor de una cabecera que ha devuelto el servidor de contenido al servidor proxy.
    • Al establecer una variable PROXY_* se establece la cabecera de solicitud que se envía del servidor proxy al servidor de contenido (o al servidor siguiente de una cadena de proxy).
    La figura 1 muestra el uso de estos prefijos cuando el proxy de almacenamiento en caché gestiona una solicitud de cliente.
    Figura 1. Prefijos de variables HTTP_ y PROXY_. Leyenda: Máquina 1—Client 2—Proxy de almacenamiento en caché Servidor 3—Origin
    Las variables HTTP_* fluyen entre el cliente y el servidor proxy; las variables PROXY_* fluyen entre el servidor proxy y el servidor de origen.
  • Algunas variables son de sólo lectura. Las variables de sólo lectura representan los valores que se pueden extraer de una solicitud o una respuesta y utilizar en la función httpd_getvar() predefinida. Se genera un código de retorno HTTPD_READ_ONLY si intenta cambiar variables de sólo lectura utilizando la función httpd_setvar().
  • Las variables no definidas como de sólo lectura se pueden leer y establecer en las funciones predefinidas httpd_getvar() o httpd_setvar(). Estas variables representan valores que se pueden extraer de una solicitud o una respuesta o valores que se pueden establecer al procesar una solicitud o una respuesta.

Definiciones de variables

Nota: Las variables de encabezado que no comienzan con los prefijos HTTP_ o PROXY_ son ambiguas. Para evitar la ambigüedad, utilice siempre el prefijo HTTP_ o PROXY_ con nombres de variable para cabeceras.
ACEPTAR_RANGO
Contiene el valor de la cabecera de respuesta Accept-Ranges, que especifica si el servidor de contenido puede responder a solicitudes de rangos. Utilice PROXY_ACCEPT_RANGES para extraer el valor de cabecera que envía el servidor de contenido al proxy. Utilice HTTP_ACCEPT_RANGES para establecer el valor de cabecera que se envía del proxy al cliente.
Nota: ACCEPT_RANGES es ambiguo. Para eliminar la ambigüedad, utilice, en su lugar, HTTP_ACCEPT_RANGES y PROXY_ACCEPT_RANGES.
TODAS_LAS_VARIABLES
Es de sólo lectura. Contiene todas las variables de CGI. Por ejemplo:
     ACCEPT_RANGES BYTES
     CLIENT_ADDR 9.67.84.3
CADENA_AUTENTICACIÓN
Es de sólo lectura. Si el servidor da soporte a la autenticación de clientes, esta serie contiene las credenciales no decodificadas que se deben utilizar para autenticar el cliente.
auth_type
Es de sólo lectura. Si el servidor da soporte a la autenticación de clientes y el script está protegido, esta serie contiene el método utilizado para autenticar el cliente. Por ejemplo, Basic.
CACHE_HIT
Es de sólo lectura. Identifica si la solicitud del proxy se ha encontrado o no en la memoria caché. Los valores que se devuelven son los siguientes:
  • 0: la solicitud no se ha encontrado en la memoria caché.
  • 1: la solicitud no se ha encontrado en la memoria caché.
FALLO DE CACHE
Es de sólo escritura. Se utiliza para forzar un fallo de memoria caché. Los valores válidos son los siguientes:
  • 0: no fuerza un fallo de memoria caché.
  • 1: fuerza un fallo de memoria caché.
TAREA_CACHÉ
Es de sólo lectura. Identifica si se ha utilizado la memoria caché. Los valores que se devuelven son los siguientes:
  • 0: la solicitud no ha accedido a la memoria caché ni la ha actualizado.
  • 1: la solicitud se ha servido desde la memoria caché.
  • 2: el objeto solicitado estaba en la memoria caché pero se tenía que volver a validar.
  • 3: el objeto solicitado no estaba en la memoria caché y probablemente se ha añadido.

Esta variable se puede utilizar en los pasos PostAuthorization, PostExit, ProxyAdvisor o Log.

CACHE_UPDATE
Es de sólo lectura. Identifica si la solicitud del proxy ha actualizado la memoria caché. Los valores que se devuelven son los siguientes:
  • 0: la memoria caché no se ha actualizado.
  • 1: la memoria caché se ha actualizado.
CLIENT_ADDR or CLIENTADDR
Es igual que REMOTE_ADDR.
MÉTODO DEL CLIENTE
Es igual que REQUEST_METHOD.
CLIENT_NAME o CLIENTNAME
Es igual que REMOTE_HOST.
CLIENT_PROTOCOL o CLIENTPROTOCOL
Contiene el nombre y la versión del protocolo que el cliente va a utilizar para realizar la solicitud. Por ejemplo, HTTP/1.1.
ENCABEZADOS_DE_RESPUESTA_DEL_CLIENTE
Es de sólo lectura. Devuelve un almacenamiento intermedio que contiene las cabeceras que el servidor envía al cliente.
Conexiones
Es de sólo lectura. Contiene el número de conexiones que se van a servir o el número de solicitudes activas. Por ejemplo, 15.
CONTENIDO_CONJUNTO_DE_SIGNOS
El juego de caracteres de la respuesta de text/*, por ejemplo, US ASCII. La extracción de esta variable es aplicable a la cabecera content-charset desde el cliente. Su establecimiento afecta a la cabecera content-charset en la solicitud al servidor de contenido.
CODIFICACIÓN DEL CONTENIDO
Especifica la codificación que se utiliza en el documento, por ejemplo, x-gzip. La extracción de esta variable es aplicable a la cabecera content-encoding desde el cliente. Su establecimiento afecta a la cabecera content-encoding en la solicitud al servidor de contenido.
LONGITUD DEL CONTENIDO
La extracción de esta variable es aplicable a la cabecera content-charset desde la solicitud del cliente. Su establecimiento afecta al valor de la cabecera en la solicitud al servidor de contenido.
Nota: CONTENT_LENGTH es ambiguo. Para eliminar la ambigüedad, utilice, en su lugar, HTTP_CONTENT_LENGTH y PROXY_CONTENT_LENGTH.
Content_type
La extracción de esta variable es aplicable a la cabecera content-charset desde la solicitud del cliente. Su establecimiento afecta al valor de la cabecera en la solicitud al servidor de contenido.
Nota: CONTENT_TYPE es ambiguo. Para eliminar la ambigüedad, utilice, en su lugar, HTTP_CONTENT_TYPE y PROXY_CONTENT_TYPE.
PARÁMETROS_TIPO_CONTENIDO
Contiene otros atributos MIME, pero no el juego de caracteres. La extracción de esta variable es aplicable a la cabecera content-charset desde la solicitud del cliente. Su establecimiento afecta al valor de la cabecera en la solicitud al servidor de contenido.
URL_DEL_DOCUMENTO
Contiene el URL (Uniform Request Locator). Por ejemplo:
http://www.anynet.com/~userk/main.htm
DOCUMENT_URI
Es igual que DOCUMENT_URL.
DOCUMENT_ROOT
Es de sólo lectura. Contiene la vía de acceso raíz al documento, como definen las reglas de paso.
ErrorInfo
Especifica el código de error para determinar la página de error. Por ejemplo, blocked.
EXPIRES
Define cuándo caducan los documentos almacenados en la memoria caché de un proxy. La extracción de esta variable es aplicable a la cabecera content-charset desde la solicitud del cliente. Su establecimiento afecta al valor de la cabecera en la solicitud al servidor de contenido. Por ejemplo:
Mon, 01 Mar 2002 19:41:17 GMT
INTERFAZ DE PUERTA DE ENLACE
Es de sólo lectura. Contiene la versión de la API que está utilizando el servidor. Por ejemplo, ICSAPI/2.0.
GC_BIAS
Es de sólo escritura. Este valor de coma flotante influye en la recogida de basura del archivo que se va a considerar para la recogida de basura. El valor introducido se multiplica por la configuración de calidad del proxy de almacenamiento en caché para ese tipo de archivo con el fin de determinar la clasificación. Los valores de calidad se encuentran en un intervalo de 0.0 a 0.1 y los definen las directivas AddType en el archivo de configuración de proxy (ibmproxy.conf).
GC_EVALUACIÓN
Es de sólo escritura. Este valor de coma flotante determina si eliminar (0.0) o conservar (1.0) el archivo que se va a considerar para la recogida de basura. Los valores entre 0.0 y 1.0 se ordenan por rangos, es decir, un archivo con el valor de GC_EVALUATION 0.1 es más probable que se elimine que un archivo con el valor de GC_EVALUATION 0.9.
GC_EXPIRA
Es de sólo lectura. Identifica el número de segundos que quedan hasta que el archivo que se está considerando caduque en la memoria caché. Sólo puede extraer esta variable un plug-in de asesor de GC.
GC_FILENAME
Es de sólo lectura. Identifica el archivo que se va a considerar para la recogida de basura. Sólo puede extraer esta variable un plug-in de asesor de GC.
GC_TAMAÑO_ARCHIVO
Es de sólo lectura. Identifica el tamaño del archivo que se va a considerar para la recogida de basura. Sólo puede extraer esta variable un plug-in de asesor de GC.
ÚLTIMO ACCESO
Es de sólo lectura. Identifica cuando se ha accedido al archivo por última vez. Sólo puede extraer esta variable un plug-in de asesor de GC.
GC_ÚLTIMA_COMPROBACIÓN
Es de sólo lectura. Identifica cuándo se han comprobado los archivos por última vez. Sólo puede extraer esta variable un plug-in de asesor de GC.
GC_LOAD_DELAY
Es de sólo lectura. Identifica cuánto se ha tardado en recuperar el archivo. Sólo puede extraer esta variable un plug-in de asesor de GC.
HTTP_COOKIE
Cuando se lee, esta variable contiene el valor de la cabecera Set-Cookie establecida por el cliente. También se puede utilizar para establecer una nueva cookie en la secuencia de respuesta (entre el proxy y el cliente). Al establecer esta variable, se crea una nueva cabecera Set-Cookie en la secuencia de solicitudes del documento, independientemente de si existe una cabecera duplicada.
http_headers
Es de sólo lectura. Se utiliza para extraer todas las cabeceras de solicitud del cliente.
http_reason
El establecimiento de esta variable afecta a la serie de motivo de la respuesta HTTP. Su establecimiento también afecta a la serie de motivo de la respuesta del proxy al cliente. La extracción de esta variable devuelve la serie de motivo en la respuesta del servidor de contenido al proxy.
RESPUESTA HTTP
El establecimiento de esta variable afecta al código de respuesta en la respuesta HTTP. Su establecimiento también afecta al código de estado de la respuesta del proxy al cliente. La extracción de esta variable devuelve el código de estado en la respuesta del servidor de contenido al proxy.
HTTP_STATUS
Contiene el código de respuesta HTTP y la serie de respuesta. Por ejemplo, 200 OK.
HTTP_USER_AGENT
Contiene el valor de la cabecera de solicitud User-Agent, que es el nombre del navegador web del cliente, por ejemplo, Netscape Navigator ⁄ V2.02. El establecimiento de esta variable afecta a la cabecera en la respuesta del proxy al cliente. Su extracción se aplica a la cabecera desde la solicitud del cliente.
init_string
Es de sólo lectura. La directiva ServerInit define esta serie. Esta variable sólo puede ser de lectura durante el paso Server Initialization.
LAST_MODIFIED
La extracción de esta variable es aplicable a la cabecera content-charset desde la solicitud del cliente. Su establecimiento afecta al valor de la cabecera en la solicitud al servidor de contenido. Por ejemplo:
Mon, 01 Mar 1998 19:41:17 GMT
VARIABLES_LOCALES
Es de sólo lectura. Todas las variables definidas por el usuario.
MaxActiveThreads
Es de sólo lectura. Número máximo de hebras activas.
NO MODIFICADO_A_OK
Fuerza una respuesta completa al cliente. Es válida en los pasos PreExit y ProxyAdvisor.
ORIGINAL_HOST
Es de sólo lectura. Devuelve el nombre de sistema principal o la dirección IP de destino de una solicitud. Se aplica en un proxy transparente.
ORIGINAL_URL
Es de sólo lectura. Devuelve el URL original enviado en la solicitud del cliente.
ANULAR_HTTP_NO_TRANSFORMAR
Habilita la modificación de los datos en presencia de una cabecera Cache-Control: no-transform. El establecimiento de esta variable afecta a la cabecera de respuesta al cliente.
ANULAR_PROXY_NO_TRANSFORMAR
Habilita la modificación de los datos en presencia de una cabecera Cache-Control: no-transform. El establecimiento de esta variable afecta a la respuesta al servidor de contenido.
PASSWORD
Para autenticación básica, contiene la contraseña decodificada. Por ejemplo, password.
PATH
Contiene la vía de acceso totalmente convertida.
PATH_INFO
Contiene información de vía de acceso adicional tal como la envía el navegador web. Por ejemplo, /foo.
PATH_TRADUCIDO
Contiene la versión decodificada o convertida de la información de vía de acceso contenida en PATH_INFO. Por ejemplo:
d:\wwwhome\foo
/wwwhome/foo
PICS_ETIQUETA
Es de sólo escritura. Contiene información de etiqueta PICS. El servidor comprobará el valor de PICS_LABEL sólo si el valor se ha establecido en el paso PicsDBLookup.
PICS_NOMBRE_DEL_SERVICIO
Es de sólo lectura. Contiene el nombre del servicio de clasificación de PICS. Por ejemplo:
Ratings USA
PICS_NOMBRE_DEL_SITIO
Es de sólo lectura. Contiene el URL del servicio de clasificación de PICS. Por ejemplo:
http://www.ratings.com/
PICS_PATHNAME
Es de sólo lectura. Contiene el nombre de archivo y la vía de acceso del documento que se debe clasificar.
pPath
Contiene la vía de acceso parcialmente convertida. Utilícela en el paso Name Translation.
PROXIED_CONTENT_LENGTH
Es de sólo lectura. Devuelve la longitud de los datos de respuesta que se han transferido realmente a través del servidor proxy.
ACCESO_PROXY
Define si la solicitud es una solicitud de proxy. Por ejemplo, NO.
TIPO_DE_CONTENIDO_PROXY
Contiene el encabezado Content-Type de la solicitud proxy realizada a través de HTTPD_proxy(). Cuando se envía información con el método POST, esta variable contiene el tipo de datos incluidos. Puede crear un tipo de contenido propio en el archivo de configuración del servidor proxy y correlacionarlo con un visor. La extracción de esta variable se aplica al valor de cabecera desde la respuesta del servidor de contenido. Su establecimiento afecta a la cabecera de la solicitud al servidor de contenido. Por ejemplo:
application/x-www-form-urlencoded
LONGITUD_DEL_CONTENIDO_PROXY
El encabezado Content-Length de la solicitud proxy realizada a través de HTTPD_proxy(). Cuando se envía información con el método POST, esta variable contiene el número de caracteres de los datos. Los servidores no suelen enviar un distintivo de final de archivo cuando reenvían la información mediante la entrada estándar. Si es necesario, puede utilizar el valor de CONTENT_LENGTH para determinar el final de la serie de entrada. La extracción de esta variable se aplica al valor de cabecera desde la respuesta del servidor de contenido. Su establecimiento afecta a la cabecera de la solicitud al servidor de contenido. Por ejemplo:
7034
PROXY_COOKIE
Cuando se lee, esta variable contiene el valor de la cabecera Set-Cookie establecida por el servidor de origen. También se puede utilizar para establecer una nueva cookie en la secuencia de solicitudes. Al establecer esta variable, se crea una nueva cabecera Set-Cookie en la secuencia de solicitudes del documento, independientemente de si existe una cabecera duplicada.
PROXY_HEADERS
Es de sólo lectura. Se utiliza para extraer las cabeceras de proxy.
MÉTODO DE PROXY
Método para la solicitud realizada a través de HTTPD_proxy(). La extracción de esta variable se aplica al valor del encabezado de la respuesta del servidor de contenido. Su establecimiento afecta a la cabecera de la solicitud al servidor de contenido.
CADENA_DE_CONSULTA
Cuando se envía información utilizando el método GET, esta variable contiene la información que sigue al signo de interrogación (?) en una consulta. El programa de CGI debe decodificar esta información. Por ejemplo:
NAME=Eugene+T%2E+Fox&ADDR=etfox%7Cibm.net&INTEREST=xyz
RCA_PROPIETARIO
Es de sólo lectura. Devuelve un valor numérico que indica el nodo propietario del objeto solicitado. Esta variable se puede utilizar en los pasos PostExit, ProxyAdvisor o Log y sólo tiene sentido cuando el servidor forma parte de una matriz de memoria caché que utiliza el acceso a memoria caché remota (RCA).
RCA_TIMEOUTS
Es de sólo lectura. Devuelve un valor numérico, que contiene el número total (agregado) de tiempos de espera excedidos en las solicitudes de RCA a todos los iguales. Puede utilizar esta variable en cualquier paso.
REDIRECT_*
Es de sólo lectura. Contiene una cadena de redireccionamiento para el código de error que corresponde al nombre de la variable (por ejemplo, REDIRECT_URL). Puede encontrar una lista de posibles variables REDIRECT_ en la documentación en línea del servidor web Apache en http://httpd.apache.org/docs-2.0/custom-error.html.
Referrer_URL
Es de sólo lectura. Contiene la última ubicación de URL del navegador. Permite al cliente especificar, a beneficio del servidor, la dirección (URL) del recurso del que se ha obtenido Request-URL. Por ejemplo:
http://www.company.com/homepage
REMOTE_ADDR
Contiene la dirección IP del navegador web, si está disponible. Por ejemplo, 45.23.06.8.
remote_host
Contiene el nombre de sistema principal del navegador web, si está disponible. Por ejemplo, www.raleigh.ibm.com.
remote_user
Si el servidor da soporte a la autenticación de clientes y el script está protegido, esta variable contiene el nombre de usuario que se ha pasado para autenticación. Por ejemplo, joeuser.
REQHDR
Es de sólo lectura. Contiene una lista de las cabeceras enviadas por el cliente.
TIPO_DE_CONTENIDO_SOLICITADO
Es de sólo lectura. Devuelve el tipo de contenido del cuerpo de la solicitud. Por ejemplo:
application/x-www-form-urlencoded
LONGITUD_DEL_CONTENIDO_SOLICITADO
Es de sólo lectura. Cuando se envía esta información con el método de POST, esta variable contiene el número de caracteres de datos. Los servidores no suelen enviar un distintivo de final de archivo cuando reenvían la información mediante la entrada estándar. Si es necesario, puede utilizar el valor de CONTENT_LENGTH para determinar el final de la serie de entrada. Por ejemplo, 7034.
request_method
Es de sólo lectura. Contiene el método (tal como se especifica con el atributo METHOD en un formulario HTML) que se utiliza para enviar la solicitud. Por ejemplo, GET o POST.
REQUEST_PORT
Es de sólo lectura. Devuelve el número de puerto especificado en el URL o un puerto predeterminado basado en el protocolo.
TIPO_DE_CONTENIDO_DE_RESPUESTA
Es de sólo lectura. Cuando se envía información con el método de POST, esta variable contiene el tipo de datos incluidos. Puede crear un tipo de contenido propio en el archivo de configuración del servidor proxy y correlacionarlo con un visor. Por ejemplo, text/html.
RESPUESTA_CONTENIDO_LONGITUD
Es de sólo lectura. Cuando se envía esta información con el método de POST, esta variable contiene el número de caracteres de datos. Los servidores no suelen enviar un distintivo de final de archivo cuando reenvían la información mediante la entrada estándar. Si es necesario, puede utilizar el valor de CONTENT_LENGTH para determinar el final de la serie de entrada. Por ejemplo, 7034.
RULE_FILE_PATH
Es de sólo lectura. Contiene la vía de acceso al sistema de archivos plenamente cualificada y el nombre del archivo de configuración.
SSL_SESSIONID
Es de sólo lectura. Devuelve el ID de sesión de SSL si la solicitud actual se ha recibido en una conexión SSL. Devuelve NULL si la solicitud actual no se ha recibido en una conexión SSL.
Script_Name
Contiene el URL de la solicitud.
DIRECCIÓN DEL SERVIDOR
Es de sólo lectura. Contiene la dirección IP local del servidor proxy.
SERVER_NAME
Es de sólo lectura. Contiene el nombre de sistema principal del servidor proxy o dirección IP del servidor de contenido para esta solicitud. Por ejemplo, www.ibm.com.
PUERTO_SERVIDOR
Es de sólo lectura. Contiene el número de puerto del servidor proxy al que se ha enviado la solicitud de cliente. Por ejemplo, 80.
PROTOCOLO DEL SERVIDOR
Es de sólo lectura. Contiene el nombre y la versión del protocolo que se ha utilizado para realizar la solicitud. Por ejemplo, HTTP/1.1.
RAÍZ DEL SERVIDOR
Es de sólo lectura. Contiene el directorio donde está instalado el programa del servidor proxy.
SOFTWARE DEL SERVIDOR
Es de sólo lectura. Contiene el nombre y la versión del servidor proxy.
estado
Contiene el código de respuesta HTTP y la serie de respuesta. Por ejemplo, 200 OK.
Rastreo
Determina cuánta información se rastreará. Los valores que se devuelven son:
  • OFF: sin rastreo.
  • V: modalidad de salida detallada.
  • VV: modalidad de salida muy detallada.
  • MTV: modalidad de salida demasiado detallada.
Titularidades
Lectura/escritura. Es igual que DOCUMENT_URL.
URI_PATH
Es de sólo lectura. Devuelve sólo la parte de vía de acceso de un URL.
URL
Lectura/escritura. Es igual que DOCUMENT_URL.
URL_MD4
Es de sólo lectura. Devuelve el nombre del archivo posible de memoria caché para la solicitud actual.
USE_PROXY
Identifica el proxy con el que se debe asociar para la petición actual. Especifique el URL. Por ejemplo, http://myproxy:8080.
ID DE USUARIO
Es igual que REMOTE_USER.
Nombre de usuario
Es igual que REMOTE_USER.

Autenticación y autorización

En primer lugar, revisemos brevemente la terminología:

Autenticación
Verificación de las señales de seguridad asociadas con esta solicitud a fin de determinar la identidad del solicitante.
Autorización
Proceso que utiliza las señales de seguridad para determinar si el solicitante tiene acceso al recurso.

La siguiente figura muestra el proceso de autenticación y autorización del servidor proxy.

Figura 2. Proceso de autenticación y autorización del servidor proxy
Diagrama del proceso de autorización y autenticación

Como se muestra en la figura, el inicio del proceso de autorización es el primer paso del proceso de autorización y autenticación del servidor.

En el proxy de almacenamiento en caché, la autenticación forma parte del proceso de autorización; solo se produce cuando se requiere autorización.

Estos son los tres modos de proporcionar autenticación en los plug-ins de autorización:

  • Escriba sus propios plug-ins de autorización y autenticación independientes. En el archivo de configuración de proxy, utilice las directivas Authorization y Authentication para especificar estas funciones. Asegúrese de incluir la llamada a la función HTTPD_authenticate() en la función de plug-in de autorización.

    Cuando se ejecuta el paso Authorization, realiza la función de plug-in de autorización, que, por su parte, llama a la función de plug-in de autenticación.

  • Escriba su propia función de plug-in de autorización, pero haga que llame a la autenticación de servidor predeterminada. En el archivo de configuración de proxy, utilice la directiva Authorization para especificar la función. En tal caso, no necesita la directiva Authentication. Asegúrese de llamar a la función HTTPD_authenticate() en la función de plug-in de autorización.

    Cuando se ejecuta el paso Authorization, lleva a cabo la función de plug-in de autorización, que, por su parte, llama a la autenticación de servidor predeterminada.

  • Escriba su propia función de plug-in de autorización e incluya en ella todo el proceso de autenticación necesario. No utilice la función HTTPD_authenticate() en el plug-in de autorización. En el archivo de configuración de proxy, utilice la directiva Authorization para especificar el plug-in de autorización. En tal caso, no necesita la directiva Authentication.

    Cuando se ejecuta el paso Authorization, realiza la función de plug-in de autorización y las autenticaciones que incluya.

Si su complemento Caching Proxy no proporciona su propio proceso de autorización, aún puede proporcionar una autenticación personalizada utilizando el siguiente método:

  • Escriba su propia función de plug-in de autenticación. En el archivo de configuración de proxy, utilice las directivas Authentication para especificar la función. En tal caso, no necesita la directiva Authorization.

Cuando se ejecuta el paso Authorization, realiza la autorización de servidor predeterminada, que, por su parte, llama a la función de plug-in de autenticación.

Recuerde los puntos siguientes:
  • Si no tiene directivas Authorization en el archivo de configuración o si sus funciones de plug-in especificadas rechazan la gestión de la solicitud devolviendo HTTP_NOACTION, tiene lugar la autorización predeterminada del servidor.
  • Si tiene directivas Authorization en el archivo de configuración y sus funciones de plug-in incluyen HTTPD_authenticate(), el servidor llama a las funciones de autenticación especificadas en las directivas Authentication. Si no ha definido ninguna directiva Authentication o sus funciones de plug-in especificadas rechazan gestionar la solicitud devolviendo HTTP_NOACTION, tiene lugar la autenticación predeterminada del servidor.
  • Si tiene directivas Authorization en el archivo de configuración pero sus funciones de plug-in no incluyen HTTPD_authenticate(), el servidor no llama a ninguna función de autenticación. Debe escribir su propio proceso de autenticación como parte de las funciones de plug-in de autorización o realizar sus propias llamadas a otros módulos de autenticación.
  • El proxy de almacenamiento en caché genera automáticamente un desafío (solicitando al navegador que devuelva un ID de usuario y una contraseña) si su función de autorización devuelve los códigos 401 o 407. Sin embargo, aún debe configurar una configuración de protección en el proxy de almacenamiento en caché para que esta acción se realice correctamente.

Proceso de autenticación y autorización

El servidor proxy sigue estos pasos al procesar una solicitud que requiere autorización.

  1. En primer lugar, el servidor proxy examina su archivo de configuración para determinar si existe o no una directiva de autorización.
    • Si hay una directiva de autorización en el archivo de configuración, el servidor llama a la función de autorización definida en la directiva y comienza la autenticación con el paso 2.
    • Si no hay ninguna directiva de autorización, el servidor realiza una autorización predeterminada y luego pasa directamente a los procedimientos de autenticación del paso 3.
  2. El servidor proxy inicia el proceso de autenticación comprobando si el encabezado HTTP_authenticate está presente en la solicitud del cliente.
    • Si el encabezado está presente, el servidor continúa con el proceso de autenticación (véase el paso 3 ).
    • Si la cabecera no está presente, otro método debe realizar la autenticación.
  3. El servidor proxy comprueba si hay una directiva de autenticación presente en el archivo de configuración del proxy.
    • Si hay presente una directiva de autenticación en el archivo de configuración, el servidor llama a la función de autenticación definida en la directiva.
    • Si no hay ninguna directiva, el servidor realiza una autenticación predeterminada.

Si el complemento Caching Proxy proporciona su propio proceso de autorización, este sustituye la autorización y autenticación predeterminadas del servidor. Por lo tanto, si tiene directivas de autorización en el archivo de configuración, las funciones de plug-in asociadas con ellas deben gestionar también las autenticaciones necesarias. Se proporciona la función HTTPD_authenticate() predefinida para que la utilice.

Almacenamiento de variantes en caché

Utilice el almacenamiento de variantes en memoria caché para guardar en memoria caché los datos que se hayan modificado del documento original (el URI). El proxy de almacenamiento en caché gestiona las variantes generadas por la API. Las variantes son distintas versiones de un documento base.

Por lo general, cuando los servidores de origen envían variantes, no pueden identificarse como tales. El proxy de almacenamiento en caché solo admite variantes creadas por complementos (por ejemplo, conversión de página de códigos). Si un complemento crea una variante basada en criterios que no se encuentran en el encabezado HTTP, debe incluir una función de paso PreExit o PostAuthorization para crear un pseudoencabezado, de modo que el proxy de almacenamiento en caché pueda identificar correctamente la variante existente.

Por ejemplo, utilice el programa de la API de Transmogrifier para modificar los datos que los usuarios soliciten según el valor de la cabecera User-Agent que el navegador envíe. En la función close, guarde el contenido modificado en un archivo o especifique un longitud de almacenamiento intermedio y pase el almacenamiento intermedio como argumento de datos. A continuación, utilice las funciones de almacenamiento de variantes en memoria caché httpd_variant_insert() y httpd_variant_lookup() para colocar el contenido en la memoria caché.

Ejemplos de API

Para ayudarle a empezar a utilizar sus propias funciones de la API de proxy de almacenamiento en caché, consulte los programas de ejemplo que se incluyen en el directorio de ejemplos del CD-ROM de instalación de los componentes Edge. Hay información adicional disponible en la documentación.