Боковая сторона включает - Edge Side Includes
Edge Side Includes или ESI - это небольшой язык разметки для сборки динамического веб-контента на уровне края . Цель ESI - решить проблему масштабирования веб-инфраструктуры. Это приложение граничных вычислений .
Веб-сайты довольно часто создают контент. Это могло быть из-за изменения контента, такого как каталоги или форумы, или из-за персонализации . Это создает проблему для систем кэширования . Для решения этой проблемы группа компаний ( Akamai , Art Technology Group , BEA Systems , Circadence Corporation, Digital Island, Inc. , Interwoven, Inc. , Open Market, чьи технологии, связанные с ESI, теперь принадлежат FatWire Software , Oracle Corporation и Vignette Corporation ) разработала спецификацию ESI и представила ее на утверждение W3C. Редактором предложения был Марк Ноттингем.
ESI Language Specification 1.0 была представлена Консорциуму World Wide Web (W3C) для утверждения в августе 2001 года. W3C подтвердил получение, но не принял предложение.
ESI реализуется некоторыми сетями доставки контента , такими как Akamai, и некоторыми прокси-серверами кэширования, такими как Varnish , Squid и Mongrel ESI, хотя многие из них не реализуют полную спецификацию. Akamai также добавляет дополнительные функции к поддерживаемой версии.
Синтаксис
Теги элементов ESI вставляются в HTML или другое текстовое содержимое во время создания. Эти теги ESI не отображаются для зрителей, а являются директивами, которые предписывают процессору ESI предпринять определенные действия. В XML на основе тегов ESI указывают обработчику край на стороне действия , которые необходимо предпринять для завершения страницы сборки. Одним из простых примеров элемента ESI является тег include, который используется для включения содержимого, внешнего по отношению к странице. Тег включения ESI, встроенный в HTML-документ, будет выглядеть так:
<esi:include src="http://example.com/1.html" alt="http://bak.example.com/2.html" onerror="continue"/>
В этом случае процессор ESI будет получать URL-адрес src, или если это не удается, альтернативный URL-адрес, или если это не удается, ничего не делать. Система ESI обычно представляет собой кэширующий прокси-сервер, поэтому он может иметь локальную копию этих файлов, которую можно вставить, не возвращаясь на сервер. В качестве альтернативы можно кэшировать всю страницу с тегами ESI, и только запросы ESI могут быть отправлены на исходный сервер. Это позволяет разное время кеширования для разных частей страницы или разную степень персонализации.
Функции
В ESI есть четыре основных функции:
- включение фрагментов страницы, как показано выше;
- переменные, которые можно установить из файлов cookie или заголовков HTTP, а затем использовать в других инструкциях ESI или записать в разметку;
- условия , позволяющие использовать разную разметку на основе переменных, например, установлен ли cookie или нет;
- обработка ошибок , чтобы можно было использовать аварийное переключение , если исходный сервер недоступен.
Альтернативы
Основные альтернативы ESI:
- выполнять сборку на исходном сервере с использованием включений на стороне сервера и многих типов сценариев на стороне сервера .
- использовать клиентские сценарии и методы, известные под общим названием Ajax (см .: Динамическая веб-страница ) в браузере
- чтобы установить протокол между источником и границей, чтобы повторяющийся контент автоматически включался в границу, как в протоколе Railgun от Cloudflare
- делать сборку в браузере с использованием веб-компонентов .