U Servers Comunicaciones, S.C.
Llámanos de todo México:
(sin costo)
Server Side Includes
Explicación de Server Side Includes o SSI.
herramientas
del artículo
¿Qué son las Server Side Includes?
Las Server Side Includes (SSI) son comentarios especiales dentro de paginas HTML que, cuando son leídas por el servidor realizan acciones especiales. Estas acciones van desde incluir un pedazo de HTML hasta ejecutar un programa e incluir el resultado dentro de la página.
En la mayoría de los servidores corriendo Apache los archivos que contienen SSI tienen que tener extensión .shtml en vez de sólo .html.
Las SSI eran una de las armas más importantes en el arsenal de cualquier persona que escribía código HTML. Si tu ISP te ofrece SSI, tienes en tus manos una verdadera varita mágica. (Si no, simpre puedes contratar a alguien que si te las ofrezca :). Este documento te enseñará cómo usar esa varita para hacer trucos maravillosos.
El formato de las SSI
Todas las directrices al servidor están disfrazadas como un comentario de HTML, esto es por si llegara a fallar la lectura del servidor. Toda directriz tiene el siguiente formato:
<!--#comando arg1="valor1" arg2="valor2" -->
Cada comando toma diferentes argumentos y la mayoría de las veces sólo uno a la vez. A continuación se presenta una relación de los comandos y sus argumentos:
-
config: config controla varios aspectos del análisis sintáctico. Tiene tres argumentos válidos:
- errmsg controla el mesaje que se manda al usuario si ocurre un error al analizar la directriz. Cuando ocurre un error, se apunta en la bitácora de errores del servidor.
- timefmt maneja la manera en que el servidor ordena las fechas. Es compatible con la librería de strftime en UNIX.
- sizefmt determina el formato al mostrar el tamaño de un archivo. Las opciones incluyen bytes para un formato del tipo 1,234,567, o abbrev para mostrar los resultados en kilobytes o megabytes.
-
include: Esta directriz inserta el texto de otro archivo en el documento actual. Todo archivo está sujeto a los permisos de lectura comunes. Esta directriz acepta dos argumentos:
- virtual indica el path a un documento en el servidor. El path es referente al directorio raíz del servidor de web. La barra de navegación a la izquierda arriba de este documento está incluida de esta manera.
- file: recibe un nombre de archivo relativo al directorio del documento y inserta su contenido en vez del include. La expresión "../" no puede ser usada en el archivo ni tampoco paths absolutos.
-
echo: echo inserta el valor de algunas de las variables SSI (ver abajo). Todas las fechas puestas de esta manera están sujetas a la configuración dada por config o timefmt.
-
timefmt: El único argumento válido para este comando es var que toma como valor el nombre de la variable que echo va a sacar.
-
fsize: fsize saca el tamaño del archivo especificado. Los argumentos son los mismos que para include. El formato de este comando es determinado por el parámetro sizefmt en el comando config.
-
flastmod: flastmod inserta en el documento la fecha de última modificación de un archivo controlado por timefmt en config. Los tags son los mismos que para include.
-
exec: exec ejecuta un comando en el shell de UNIX o un programa de CGI. Los argumentos son:
- cmd ejecuta lo que se ponga usando /bin/sh. Todas las variables indicadas abajo pueden ser usadas en este comando.
-
cgi: ejecuta el path virtual
dado e incluye su salida en la página. El servidor no checa
si insertas algo como un GIF así es que se cauteloso. Lo que
sí, hace es interpretar encabezados de HTTP
Location: [URL]
Variables de Ambiente de SSI
Puedes incluir varias variables en documentos que contienen Server Side Includes. Ademas de las variables de CGI, éstas son especiales para SSI:
- DOCUMENT_NAME: El nombre del archivo donde esta la directriz.
- DOCUMENT_URI: El path virtual al documento (como /foo/bar.shtml).
- QUERY_STRING_UNESCAPED: La query string que viene después de una ? en un URL (como en /bar.shtml?datos=unos%20datos ).
- DATE_LOCAL: La fecha actual en la zona horaria donde está el servidor. Puede ser modificada por timefmt en el comando config.
- DATE_GMT: Lo mismo que DATE_LOCAL pero en la zona del meridiano de Greenwich.
- LAST_MODIFIED: La fecha de última modificación del documento. Sujeto a tmfmt al igual que las otras fechas.
Y hasta aquí llega este pequeño tutorial. Esperamos que sea útil porque los Server Side Includes son una de las herramientas más importantes en el mundo de la WWW.