Este describe cómo utilizar las inclusiones de servidor para insertar información en los programas CGI programas y documentos HTML que se envíen al cliente. Asimismo se describe la personalización de las correlaciones de recursos y mensajes de error del servidor.
Las inclusiones de servidor le permiten añadir información a los programas CGI y documentos HTML que el servidor envía al cliente al actuar como servidor de origen (es decir, no a objetos en memoria caché o que han pasado por el proxy). La fecha actual, el tamaño de un archivo y la fecha del último cambio de un archivo son ejemplos del tipo de información que se puede enviar al cliente. Este aprtado describe el formato de mandato de las inclusiones de servidor y explica cómo lograr que los mandatos include de servidor funcionen en los programas CGI y documentos HTML. Asimismo puede utilizar las inclusiones de servidor para personalizar las páginas de error.
Antes de utilizar las inclusiones de servidor en el servidor, tenga en cuenta los problemas de rendimiento, seguridad y riesgo:
Para habilitar las inclusiones de servidor, seleccione Configuración de servidor –> Configuración básica en los formularios de Configuración y Administración. Utilice este formulario para especificar cuál de los siguientes tipos de inclusiones de servidor son aceptables:
Utilice este formulario para especificar si desea realizar el proceso de inclusión de la parte servidor de los documentos de texto y HTML además de otros tipos de archivo.
Asimismo, asegúrese de que se reconozca la extensión de archivo que utilice para la inclusión. En los formularios de Configuración y Administración, seleccione Configuración de servidor –> Tipos MIME y codificación y utilice el formulario Tipos MIME. Tenga en cuenta que las extensiones shtml y htmls se reconocen por omisión.
Para configurar el servidor para las inclusiones de servidor editando las directivas del archivo de configuración de proxy, consulte los apartados de referencia de las siguientes directivas:
Los mandatos include deben incluirse en el documento HTML o programa CGI como comentarios. Los mandatos tienen el siguiente formato:
<!--#directive tag=value ... -->
o bien
<!--#directive tag="value" ... -->
Las comillas que encierran los valores son opcionales, pero son necesarias para anidar espacios.
Este apartado explica las directivas que el servidor acepta para las inclusiones de servidor. No se deben confundir estas directivas con las directivas del archivo de configuración de proxy, que aparecen documentadas en el Apéndice B. Directivas del archivo de configuración.
config: controlar proceso de archivos
Utilice esta directiva para controlar ciertos aspectos del proceso de archivos. Los distintivos válidos son cmntmsg, errmsg, sizefmt y timefmt.
Ejemplo:
<!--#config cmntmsg="[Esto es un comentario]" -->
<!-- #echo var=" " texto adicional -->
Resultado: <!--[Esto es un comentario] texto extra -->
Valor por omisión: [Lo siguiente era adicional en la directiva]
Ejemplo:
<!-- #config
errmsg="[Se ha producido un error]" -->
Valor por omisión: "[Se ha producido un error al procesar esta directiva]
Ejemplo 1:
<!--#config sizefmt=bytes -->
<!--#fsize file=foo.html -->
Resultado: 1024
Ejemplo 2:
<!--#config sizefmt=abbrev -->
<!--#fsize file=foo.html -->
Resultado: 1K
Valor por omisión: "abbrev"
Ejemplo:
<!--#config timefmt="%D %T" -->
<!--#flastmod file=foo.html -->
Resultado: "10/18/95 12:05:33"
Default: "%a, %d %b %Y %T %Z"
Los siguientes formatos strftime() son válidos con el distintivo timefmt:
Especificador | Significado |
---|---|
%% | Sustituir por % |
%a | Sustituir por el nombre abreviado del día de la semana |
%A | Sustituir por el nombre completo del día de la semana |
%b | Sustituir por el nombre abreviado del mes |
%B | Sustituir por el nombre completo del mes |
%c | Sustituir por la fecha y hora |
%C | Sustituir por el número de siglo (año dividido por 100 y truncado) |
%d | Sustituir por el día del mes (01-31) |
%D | Insertar la fecha como %m/%d/%y |
%e | Insertar el mes del año como un número decimal (01-12) (Bajo C POSIX sólo, es un campo de 2 caracteres, justificado por la derecha, rellenado con espacios en blanco) |
%E[cCxyY] | Si el formato fecha/hora alternativo no está disponible, los descriptores %E se correlacionan con sus equivalentes no ampliados (por ejemplo, %EC se correlaciona con %C) |
%Ec | Sustituir por la representación alternativa de la fecha y hora |
%EC | Sustituir por el nombre del año base (periodo) de la representación alternativa |
%Ex | Sustituir por la representación alternativa de la fecha |
%EX | Sustituir por la representación alternativa de la hora |
%Ey | Sustituir por el desplazamiento de %EC (año sólo) en la representación alternativa |
%EY | Sustituir por la representación alternativa completa del año |
%h | Sustituir por el nombre abreviado del mes (igual a %b) |
%H | Sustituir por la hora (reloj de 23 horas) como un número decimal (00-23) |
%I | Sustituir por la hora (reloj de 12 horas) como un número decimal (00-12) |
%j | Sustituir por el día del año (001-366) |
%m | Sustituir por el mes (01-12) |
%M | Sustituir por los minutos (00-59) |
%n | Sustituir por una nueva línea |
%O[deHlmMSUwWy] | Si el formato fecha/hora alternativo no está disponible, los descriptores %E se correlacionan con sus equivalentes no ampliados (por ejemplo, %Od se correlaciona con %d) |
%Od | Sustituir por el día del mes, utilizando los símbolos numéricos alternativos, rellenados según convenga con ceros delante si existe algún símbolo alternativo para el cero, de lo contrario deben utilizarse espacios delante |
%Oe | Sustituir por el día del mes, utilizando los símbolos numéricos alternativos, rellenados según convenga con espacios anteriores |
%OH | Sustituir por la hora (reloj de 24), utilizando los símbolos numéricos alternativos |
%OI | Sustituir por la hora (reloj de 12), utilizando los símbolos numéricos alternativos |
%Om | Sustituir por el mes, utilizando los símbolos numéricos alternativos |
%OM | Sustituir por los minutos, utilizando los símbolos numéricos alternativos |
%OS | Sustituir por los segundos, utilizando los símbolos numéricos alternativos |
%OU | Sustituir por el número de semana del año (el domingo como el primer día de la semana, normas correspondientes a %U) utilizando los símbolos numéricos alternativos |
%Ow | Sustituir por el día de la semana (Domingo=0), utilizando los símbolos numéricos alternativos |
%OW | Sustituir por el número de semana del año (el lunes como el primer día de la semana) utilizando los símbolos numéricos alternativos |
%Oy | Sustituir por el año (desplazamiento de %C) de la representación alternativa, utilizando los símbolos numéricos alternativos |
%p | Sustituir por el equivalente local de AM o PM |
%r | Sustituir por la serie equivalente a %I:%M:%S %p |
%R | Sustituir por la notación de 24 horas (%H:%M) |
%S | Sustituir por los segundos (00-61) |
%t | Sustituir por una pestaña |
%T | Sustituir por una serie equivalente a %H:%M:%S |
%u | Sustituir por el día de la semana como un número decimal (1-7), con 1 igual a lunes |
%U | Sustituir por el número de la semana del año (00-53), donde el domingo es el primer día de la semana |
%V | Sustituir por el número de la semana del año (01-53), donde el lunes es el primer día de la semana |
%w | Sustituir por el día de la semana (0-6), donde el domingo es 0 |
%W | Sustituir por el número de la semana del año (00-53), donde el lunes es el primer día de la semana |
%x | Sustituir por la representación adecuada de la fecha |
%X | Sustituir por la representación adecuada de la hora |
%y | Sustituir por el número del año de dos dígitos dentro del siglo |
%Y | Sustituir con el número del año de cuatro dígitos |
%Z | Sustituir por el nombre del huso horario o dejar sin caracteres si se desconoce el huso horario |
La configuración del sistema determina los años y nombres de mes completos y abreviados.
echo: visualizar valores de variable
Utilice esta directiva para visualizar el valor de las variables de entorno especificadas con el distintivo var. Si no se encuentra una variable, se visualizará (None). Asimismo, echo puede mostrar un valor establecido por las directivas set o global. Las siguientes variables de entorno pueden mostrarse:
Ejemplo:
<!--#echo var=SSI_DIR -->
exec: especificar programas CGI
Utilice esta directiva para incluir la salida de un programa CGI. La directiva exec descarta cualquier cabecera HTTP a las que da salida la CGI excepto las siguientes:
cgi: especificar URL de programa CGI
Utilice esta directiva para especificar el URL de un programa CGI.
En este ejemplo, programa es el programa CGI que se desea ejecutar y info_vía_acceso y serie_consulta representan uno o más parámetros pasados al programa como variable de entorno:
<!--#exec
cgi="/cgi-bin/programa/info_vía_acceso?serie_consulta" -->
Este ejemplo muestra la utilización de variables:
<!--#exec cgi="&path;&cgiprog;&pathinfo;&querystring;" -->
flastmod: visualizar fecha y hora de la última modificación del documento
Utilice esta directiva para visualizar la fecha y hora más recientes en las que se modificó el documento. El formato de esta variable se define mediante la directiva config timefmt. Los distintivos file y virtual son válidos con esta directiva y sus significados se definen del siguiente modo.
Formatos de directiva:
<!--#flastmod file="/path/file" -->
<!--#flastmod virtual="/path/file" -->
<!--#flastmod file="/path/file" -->
<!--#flastmod virtual="/path/file" -->
Ejemplo:
<!--#flastmod file="foo.html" -->
Result: 12May96
fsize: visualizar tamaño de archivo
Utilice esta directiva para visualizar el tamaño del archivo especificado. La directiva config sizefmt define el formato de esta variable. Los distintivos file y virtual son válidos con esta directiva y sus significados son los mismos que se han definido anteriormente para la directiva flastmod.
Ejemplo:
<!--#fsize file="/path/file" -->
<!--#fsize virtual="/path/file" -->
Result: 1K
global: definir variables globales
Utilice esta directiva para definir las variables globales que se pueden repetirse posteriormente mediante este archivo o cualquier archivo incluido.
Ejemplo:
<!--#global var=VariableName value="SomeValue" -->
Por ejemplo, para hacer referencia a un documento padre */a través de los límites virtuales, es necesario que establezca una variable global DOCUMENT_URI. Además es necesario que haga referencia a la variable global del documento hijo. Este ejemplo muestra el código HTML que se necesita para insertar el documento padre:
<!--#global
var="PARENT_URI" value=&DOCUMENT_URI; -->
Este ejemplo muestra el código HTML que es necesario insertar en el documento hijo:
<!--#flastmod virtual=&PARENT_URI; -->
include: incluir un documento en la salida
Utilice esta directiva para incluir el texto de un documento de la salida. Los distintivos file y virtual son válidos con esta directiva y sus significados son los mismos que se han definido anteriormente para la directiva flastmod.
set: establecer variables que se van a repetir
Utilice esta directiva para establecer una variable que se pueda repetir posteriormente, pero sólo mediante este archivo.
Ejemplo:
<!--#set var="Variable 2"
value="AnotherValue" -->
Al definir una directiva, puede repetir una serie en medio de value. Por ejemplo:
<!--#include
file="&filename;" -->
Variables: una directiva set en la parte servidor va seguida generalmente de una directiva echo, de tal modo que busca la variable establecida, informa acerca de dónde se encuentra la variable y continúa con la función. Puede contener varias referencias a variables. Las directivas set de la parte servidor también le permiten repetir una variable ya establecida. Si no se encuentra ninguna variable set, no se visualiza nada.
Cuando una directiva set de la parte servidor encuentra una referencia de variable dentro de una directiva de inclusión de servidor, intenta resolverla en la parte servidor. En la segunda línea del siguiente ejemplo, la variable &index; de la parte servidor se utiliza con la serie var para construir el nombre de variable var1. A continuación, se asigna a la variable &var1; un valor indicando un carácter de escape delante del & de ê de modo que no se reconozca como una variable. En su lugar, se utiliza como una serie para crear el valor frêd, o fred con un acento circunflejo encima de la e. La variable ê es una variable de parte del servidor.
<!--#set var="index" value="1" -->
<!--#set var="var&index;" value="fr\êd" -->
<!--#echo var="var1" -->
Los caracteres que se pueden definir de este modo (llamados variables con escape) aparecen precedidos de una barra inclinada invertida \) e incluyen los siguientes:
Carácter | Significado |
---|---|
\a | Alerta (timbre) |
\b | Retroceso |
\f | Salto de página (nueva página) |
\n | Línea nueva |
\r | Retorno de carro |
\t | Tabulador horizontal |
\v | Tabulador vertical |
\' | Comillas simples |
\" | Comillas |
\? | Signo de interrogación |
\\ | Barra inclinada invertida |
\- | Guión |
\. | Punto |
\& | Ampersand |
Puede personalizar los mensajes de error que Caching Proxy devuelve y puede definir mensajes específicos para determinadas condiciones de error. En los formularios de Configuración y Administración, seleccione Configuración de servidor –> Personalización de mensajes de error. Utilice este formulario para seleccionar una condición de error y especificar un determinado archivo HTML para utilizarlo en esa condición.
Para personalizar los mensajes de error mediante la edición de directivas en el archivo de configuración de proxy, consulte el apartado de referencia de la directiva ErrorPage: especificar un mensaje personalizado para una determinada condición de error.
Sólo se aplica a configuraciones de proxy de retorno.
WebSphere Application Server, Versión 8.5 introduce el soporte multimedia de modalidad continua en la forma del redirector RTSP. RTSP habilita Caching Proxy para que actúe como el primer punto de contacto con los reproductores multimedia y redirija las peticiones a un servidor proxy adecuado o a un servidor de contenido que proporcione el contenido de soporte solicitado.
RTSP (Real Time Streaming Protocol) aparece definido en RFC 2326. Es un protocolo estándar de Internet para controlar la corriente de datos. Aunque no incluye la tecnología para enviar corrientes, es lo bastante flexible para que pueda utilizarse para controlar las corrientes de datos que no están relacionados con la reproducción de vídeo o audio.
La característica de redirección RTSP permite que Caching Proxy redireccione las peticiones para cualquier sesión multimedia de modalidad continua controlada por RTSP. Éstas incluyen los siguientes tipos de soporte:
Cualquier reproductor que se pueda configurar para contactar con un servidor proxy en el puerto RTSP (generalmente 554) puede utilizar esta infraestructura de Caching Proxy para que el redirector RTSP maneje las peticiones.
El redirector RTSP no coloca en antememoria o pasa directamente por el proxy las representaciones multimedia. El redirector RTSP debe utilizarse junto con un servidor multimedia de modalidad continua de terceros para que proporcione una de las funciones o ambas. Caching Proxy con el redirector RTSP debe tener acceso de red a uno o más de los servidores proxy RTSP.
Esta característica está sujeta a la siguiente limitación:
Actualmente, sólo se da soporte a las tecnologías RealNetworks. Éstas incluyen el servidor proxy RealProxy, el servidor de origen RealServer y el reproductor multimedia RealPlayer.
Anteriormente, el redirector RTSP estaba sujeto a la limitación de que todas las peticiones al mismo servidor de origen de cualquier URL debían redirigirse al mismo sitio. La redirección basada en los nombres de archivo u otras partes del URL solicitado no era posible. Esta limitación ya no se aplica. Actualmente el redirector RTSP utiliza el URL completo de las peticiones recibidas junto con el valor de umbral (rtsp_proxy_threshold) establecido en el archivo de configuración de Caching Proxy para determinar si se debe redirigir la petición de cliente al servidor de origen o a un servidor proxy. Actualmente las peticiones al mismo servidor de origen se manejan individualmente.
Las siguientes directivas de configuración de archivos se utilizan para controlar la redirección RTSP. Los valores de estas directivas no se renuevan mediante un reinicio de servidor. El servidor debe detenerse completamente y reiniciarse antes de que los cambios de estas directivas entren en vigor.