Лучшие вопросы
Таймлайн
Чат
Перспективы

Edge Side Includes

Из Википедии, свободной энциклопедии

Remove ads

Edge Side Includes (ESI) — небольшой язык разметки для сборки динамического веб-контента на уровне граничных устройств (edge-устройств). Цель ESI — решение проблемы масштабирования веб-инфраструктуры[1]. 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 1.0 была представлена в Консорциум Всемирной паутины (W3C) для утверждения в августе 2001 года. W3C подтвердил получение, но не принял это предложение[1].

ESI реализован в некоторых сетях доставки контента (CDN), таких как Akamai, и в некоторых кэширующих прокси-серверах, таких как Varnish, Squid и Mongrel ESI[2], хотя многие из них реализуют спецификацию не полностью[3]. Akamai также добавляет дополнительные функции в поддерживаемую ими версию[4].

Remove ads

Синтаксис

Суммиров вкратце
Перспектива

Теги элементов ESI вставляются в HTML или другой текстовый контент во время его создания. Вместо того чтобы отображаться пользователям, эти теги ESI являются директивами, которые указывают обработчику ESI (ESI-процессору) выполнить определённое действие. Основанные на XML теги ESI указывают агенту обработки на стороне Edge, какое действие необходимо предпринять для завершения сборки страницы. Простым примером элемента ESI является тег `include`, который используется для включения внешнего по отношению к странице контента. Тег `include` ESI, размещённый внутри HTML-документа, будет выглядеть следующим образом[1]:

<esi:include src="http://example.com/1.html" alt="http://bak.example.com/2.html" onerror="continue"/>

В этом случае обработчик ESI попытается получить контент по URL-адресу из атрибута `src`, в случае неудачи — по URL-адресу из `alt`, а если и это не удастся — ничего не делать (согласно `onerror="continue"`). Система ESI обычно представляет собой кэширующий прокси-сервер, поэтому она может иметь локальную копию этих файлов и вставлять их без обращения к исходному серверу. В качестве альтернативы может кэшироваться вся страница с тегами ESI, и только запросы ESI будут отправляться на исходный сервер. Это позволяет устанавливать разное время кэширования для разных частей страницы или применять разные уровни персонализации.

Remove ads

Возможности

В ESI есть четыре основные возможности[1]:

  • включения фрагментов страницы, как показано выше;
  • переменные, которые можно устанавливать из cookie или HTTP-заголовков и затем использовать в других ESI-инструкциях или выводить в разметку;
  • условия, позволяющие использовать разную разметку в зависимости от переменных, например, от того, установлен cookie или нет;
  • обработка ошибок, позволяющая использовать резервный вариант (failover), если исходный сервер недоступен.
Remove ads

Альтернативы

Основными альтернативами ESI являются:

Примечания

Ссылки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads