Server Side Includes ( SSI ) es un lenguaje de scripting del lado del servidor interpretado y sencillo , utilizado casi exclusivamente para la World Wide Web . Resulta muy útil para incluir el contenido de uno o más archivos en una página web en un servidor web (véase más abajo), mediante su #includedirectiva. Esto podría ser, por ejemplo, un fragmento de código común en todo un sitio, como el encabezado, el pie de página y el menú de navegación. SSI también incluye directivas de control para funciones condicionales y directivas para llamar a programas externos. Es compatible con Apache , LiteSpeed , nginx , IIS y Jigsaw del W3C . [ 1 ] Tiene sus orígenes en NCSA HTTPd . [ 2 ]
Para que un servidor web reconozca un archivo HTML habilitado para SSI y, por lo tanto, ejecute estas instrucciones, el nombre del archivo debe terminar con una extensión especial , por defecto .shtml, .stm, .shtm, o, si el servidor está configurado para permitirlo, establecer el bit de ejecución del archivo. [ 3 ]
Diseño
Como lenguaje de programación simple, SSI admite solo un tipo : texto. Su flujo de control es bastante simple, admite opciones, pero los bucles no son compatibles de forma nativa y solo se pueden realizar mediante recursión usando include o usando redirección 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 complejo del lado del servidor a menudo se realiza con uno de los lenguajes de programación más completos . SSI es Turing completo . [ 4 ]
SSI tiene una sintaxis simple: . Las directivas se colocan en comentarios HTML para que, si SSI no está habilitado, los usuarios no vean las directivas SSI en la página, a menos que consulten su código fuente. Tenga en cuenta que la sintaxis no permite espacios entre el encabezado y la directiva. El tutorial de Apache sobre SSI estipula que el formato requiere un espacio antes del que cierra el elemento. [ 5 ]<!--#directive parameter=value parameter=value--><!---->
Ejemplos
Una página web que contenga una cita diaria puede incluirla insertando el siguiente código en el archivo de la página: Con un solo cambio en el archivo, todas las páginas que lo incluyan mostrarán la última cita diaria. La inclusión no se limita a archivos; también puede ser la salida de texto de un programa o el valor de una variable del sistema, como la hora actual.<!--#include virtual="../quote.txt"-->quote.txt
Directivas
Común
Las siguientes son directivas SSI de la época de NCSA HTTPd (década de 1990). [ 2 ] Algunas implementaciones no las admiten todas. [ 6 ]
Directivas de control
Posteriormente, se añaden directivas de control a SSI. Estas incluyen el control de flujo if-elif-else-endif, omnipresente, y la escritura de variables, así como características más exóticas como los bucles, que solo se encuentran en algunas implementaciones.
Véase también
Notas
- ↑ Sin embargo, se encuentra en algunas implementaciones, incluyendo Jigsaw.
Referencias
- 1 2 "Comandos SSI" . W3C . Consultado el 24 de marzo de 2019 .
- 1 2 3 "Server Side Includes (SSI)" . Tutorial de NCSA HTTPd . Archivado del original el 3 de marzo de 1997. Recuperado el 24 de marzo de 2019 .
- ↑ "Configuración del 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 .
- ↑ "Server Side Includes Turing machine, Jan Schejbal" . Janschejbal.de . Consultado el 6 de diciembre de 2012 .
- ↑ "Directivas y sintaxis básicas de SSI" . 9 de febrero de 2018. Consultado el 9 de febrero de 2018 .
- ↑ "Módulo ngx_http_ssi_module" . Documentación de nginx . Consultado el 16 de noviembre de 2021 .
- 1 2 "Módulo Apache mod_include" . Documentación de Apache HTTP Server versión 2.4 . Apache Software Foundation . Consultado el 7 de septiembre de 2021 .
- 1 2 3 "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 las implementaciones:
- Apache: Referencia de Apache mod_include . Llama a las directivas "elements".
- Nginx: Módulo ngx_http_ssi_module . Llama a las directivas "commands".
- NCSA HTTPd : Referencia SSI original de NCSA HTTPd . Llama a las directivas "comandos".
- W3C Jigsaw: Comandos de inclusión del lado del servidor . Llama a las directivas "elementos". Ampliamente expandido con servlets , JDBC , cookies HTTP y bucles.
- Tutoriales:
- Tutorial de Apache SSI
- Guía en lenguaje sencillo sobre SSI
- Desarrollador SSI, Apache Server Side Includes
- Lenguajes de scripting
- Web 1.0
- Tecnología web