Edge Side Includes ( ESI ) es un pequeño lenguaje de marcado para el ensamblaje de contenido web dinámico a nivel de borde . El propósito de ESI es abordar el problema de la escalabilidad de la infraestructura web. [1] Es una aplicación de la computación de borde .
Es bastante común que los sitios web tengan contenido generado. Puede ser por cambios en el contenido, como catálogos o foros, o por personalización . Esto crea un problema para los sistemas de almacenamiento en caché . Para superar este problema, un grupo de empresas ( Akamai , Art Technology Group , BEA Systems , Circadence Corporation, Digital Island, Inc. , Interwoven, Inc. , Open Market, cuya tecnología relacionada con ESI ahora es propiedad de FatWire Software , Oracle Corporation y Vignette Corporation ) desarrollaron la especificación ESI y la enviaron al W3C para su aprobación. El editor de la propuesta fue Mark Nottingham.
La especificación del lenguaje ESI 1.0 se presentó al Consorcio World Wide Web (W3C) para su aprobación en agosto de 2001. El W3C acusó recibo, pero no aceptó la propuesta. [1]
ESI se implementa en algunas redes de distribución de contenido , como Akamai, y en algunos servidores proxy de almacenamiento en caché como Varnish , Squid y Mongrel ESI, [2] aunque muchos no implementan la especificación completa. [3] Akamai también agrega características adicionales a la versión que admiten. [4]
Las etiquetas de elementos ESI se insertan en HTML u otro contenido basado en texto durante la creación. En lugar de mostrarse a los espectadores, estas etiquetas ESI son directivas que instruyen a un procesador ESI a realizar alguna acción. Las etiquetas ESI basadas en XML indican al agente de procesamiento del lado del borde la acción que se debe realizar para completar el ensamblaje de la página. Un ejemplo simple de un elemento ESI es la etiqueta de inclusión que se utiliza para incluir contenido externo a la página. Una etiqueta de inclusión ESI colocada en línea dentro de un documento HTML se vería así: [1]
<esi:include src= "http://ejemplo.com/1.html" alt= "http://bak.ejemplo.com/2.html" onerror= "continuar" />
En este caso, el procesador ESI recuperaría la URL de origen o, en su defecto, la URL alternativa o, si esto falla, no haría nada. El sistema ESI suele ser un servidor proxy de almacenamiento en caché, por lo que puede tener una copia local de estos archivos que puede insertar sin tener que volver al servidor. Otra posibilidad es almacenar en caché toda la página con las etiquetas ESI y solo se pueden realizar las solicitudes ESI al servidor de origen. Esto permite diferentes tiempos de almacenamiento en caché para diferentes partes de la página o diferentes grados de personalización.
Hay cuatro características principales en ESI: [1]
Las principales alternativas al ESI son