Server Side Included ( SSI ) es un lenguaje de secuencias de comandos del lado del servidor interpretado simple que se utiliza casi exclusivamente para la World Wide Web . Es más útil para incluir el contenido de uno o más archivos en una página web en un servidor web , usando su #include
directiva. Por lo general, esto podría ser un fragmento de código común en todo un sitio, como un encabezado de página, un pie de página y un menú de navegación. SSI también contiene directivas de control para funciones condicionales y directivas para llamar a programas externos. Es compatible con Apache , LiteSpeed , nginx , IIS y Jigsaw de W3C . [1]Tiene sus raíces en NCSA HTTPd . [2]
Para que un servidor web para reconocer una habilitado para SSI HTML archivo y, por tanto, llevar a cabo estas instrucciones, ya sea el nombre del archivo debe terminar con un especial de extensión , de forma predeterminada .shtml
, .stm
, .shtm
, o, si el servidor está configurado para permitir esto, establezca la ejecución poco del archivo. [3]
Diseño
Como lenguaje de programación simple, SSI solo admite un tipo : texto. Su flujo de control es bastante simple, se admite la elección, pero los bucles no se admiten de forma nativa y solo se pueden realizar mediante recursividad usando incluir o usando redireccionamiento HTTP . [a] El diseño simple del lenguaje hace que sea más fácil de aprender y usar que la mayoría de los lenguajes de scripting del lado del servidor, mientras que el procesamiento complicado del lado del servidor a menudo se realiza con uno de los lenguajes de programación con más características . SSI es Turing completo . [4]
SSI tiene una sintaxis sencilla: . Las directivas se colocan en los comentarios HTML de modo que si SSI no está habilitado, los usuarios no verán las directivas SSI en la página, a menos que miren su fuente. Tenga en cuenta que la sintaxis no permite espacios entre el "<" inicial y la directiva. El tutorial de Apache sobre SSI estipula que el formato requiere un carácter de espacio antes del "->" que cierra el elemento. [5]
Ejemplos de
Una página web que contenga una cotización diaria podría incluir la cotización colocando el siguiente código en el archivo de la página web:
Con un cambio del quote.txt
archivo, todas las páginas que incluyen el archivo mostrarán la última cotización diaria. La inclusión no se limita a archivos, y también puede ser la salida de texto de un programa o el valor de una variable del sistema, como la hora actual. [6]
Directivas
Común
Las siguientes son directivas SSI de la época de NCSA HTTPd (la década de 1990). Son compatibles con todas las implementaciones. [2]
Directiva | Parámetros | Descripción | Ejemplo |
---|---|---|---|
include | archivo o virtual | Esta es probablemente la directiva SSI más utilizada, ya que permite que el contenido de un documento se transcluya en otro. El archivo o los parámetros virtuales especifican el archivo ( página HTML , archivo de texto, script, etc.) que se incluirá. Incluye el contenido de otro archivo o el resultado de ejecutar un script CGI . Si el proceso no tiene acceso para leer el archivo o ejecutar el script, la inclusión fallará. "virtual" especifica el destino relativo a la raíz del dominio, mientras que "archivo" especifica la ruta relativa al directorio del archivo actual. Cuando se utiliza "archivo", está prohibido hacer referencia a rutas absolutas. Los directorios superiores (..) generalmente están prohibidos, a menos que se configuren explícitamente. La documentación de Apache recomienda usar "virtual" en lugar de "archivo". | |
exec | cgi o cmd | Esta directiva ejecuta un programa, script o comando de shell en el servidor. El parámetro cmd especifica un comando del lado del servidor; el parámetro cgi especifica la ruta a un script CGI . El PATH_INFO y QUERY_STRING del script SSI actual se pasarán al script CGI, como resultado, se debe usar "exec cgi" en lugar de "incluir virtual". | |
echo | var | Esta directiva muestra el contenido de una variable de entorno HTTP especificada . Las variables incluyen HTTP_USER_AGENT, LAST_MODIFIED y HTTP_ACCEPT. | Tu dirección IP es: |
config | timefmt, sizefmt o errmsg | Esta directiva configura los formatos de visualización para la fecha, la hora, y el mensaje de error (devuelto cuando falla un comando SSI). | -> |
flastmod y fsize | archivo o virtual | Estas directivas muestran la fecha de la última modificación del documento especificado o el tamaño del documento especificado. El archivo o los parámetros virtuales especifican el documento que se utilizará. El parámetro de archivo define el documento como relativo a la ruta del documento; el parámetro virtual define el documento como relativo a la raíz del documento. |
Directivas de control
Las directivas de control se agregan posteriormente a SSI. Incluyen el omnipresente control de flujo if-elif-else-endif y escritura de variables, así como características más exóticas como los bucles que solo se encuentran en algunas implementaciones.
Directiva | Parámetros | Descripción | Ejemplo | Encontrado en |
---|---|---|---|---|
| expr | La declaración if . Se utiliza para pruebas de condición que pueden determinar y generar varias páginas lógicas a partir de una sola página física. elif es una abreviatura de else-if anidado. else y endif no acepta parámetros.La sintaxis de las expresiones varía entre las implementaciones. Las comprobaciones de existencia variable e igualdad / expresiones regulares son comúnmente compatibles. En su lugar, Jigsaw usa expresiones divididas en múltiples atributos. [1] | Ubicuo. | |
colocar | var, valor | Establece el valor de una variable SSI. Apache proporciona parámetros adicionales para codificaciones . [7] | Apache, [7] Nginx [8] | |
printenv | Esta directiva genera una lista de todas las variables SSI y sus valores, incluidas las variables ambientales y definidas por el usuario. No tiene atributos. | Apache [7] |
Ver también
Notas
- ^ Sin embargo, se encuentra en algunas implementaciones, incluido Jigsaw.
Referencias
- ^ a b "Comandos SSI" . W3C . Consultado el 24 de marzo de 2019 .
- ^ a b "El lado del servidor incluye (SSI)" . Tutorial de HTTPd de NCSA . Archivado desde el original el 3 de marzo de 1997 . Consultado el 24 de marzo de 2019 .
- ^ "Configuración de su servidor para permitir SSI" . Tutorial de Apache: Introducción a las inclusiones del lado del servidor . La Fundación de Software Apache . Consultado el 24 de junio de 2015 .
- ^ "El lado del servidor incluye la máquina de Turing, Jan Schejbal" . Janschejbal.de . Consultado el 6 de diciembre de 2012 .
- ^ "Directivas y sintaxis básica de SSI" . 2018-02-09 . Consultado el 9 de febrero de 2018 .
- ^ "Cómo hacer un sitio web" . sites.google.com . Consultado el 28 de marzo de 2021 .
- ^ a b c "mod_include" . Servidor HTTP Apache . Consultado el 25 de marzo de 2019 .
- ^ "ngx_http_ssi_module" . nginx.org . Consultado el 25 de marzo de 2019 .
enlaces externos
- Referencia de lenguaje de implementaciones:
- Apache: Referencia de Apache mod_include . Llama a las directivas "elementos".
- Nginx: Módulo ngx_http_ssi_module . Llama a las directivas "comandos".
- NCSA HTTPd : Referencia original de SSI de NCSA HTTPd . Llama a las directivas "comandos".
- W3C Jigsaw: comandos de inclusión del lado del servidor . Llama a las directivas "elementos". Altamente expandido con servlets , JDBC , cookies HTTP y bucles.
- Tutoriales:
- Tutorial de Apache SSI
- Guía en inglés sencillo para SSI
- SSI-Developer, el lado del servidor Apache incluye