Полный цикл в digital

Как работает композитная технология

Многие элементы страниц сайта выглядят одинаково, например, шапка и подвал. У композитного сайта данные, одинаковые для всех пользователей (статические) хранятся в виде html-файла на сервере (кеш). И могут быть отданы сразу, без выполнения php-кода и запросов к базе данных. Данные, которые у пользователей различаются (корзина, личный кабинет) подгружаются в фоновом режиме, когда HTML уже отобразился в браузере. Эти данные называются динамическими. Параллельно с ними загружаются CSS, Javascript, шрифты, изображения.

При фоновом ajax-запросе Битрикс формирует страницу полностью. Из полученного html-кода вырезаются динамические данные и отправляются браузеру в формате json. Браузер вставляет полученные от сервера актуальные данные вместо специальных заглушек. А на сервере тем временем происходит обратный процесс — на место вырезанных динамических данных вставляются заглушки. После замены всей динамики на статику, считается контрольная сумма получившейся страницы. Если эта сумма не совпадает с контрольной суммой страницы в кеше — кеш перезаписывается.

В каком месте html-кода производить замены (на клиенте и на сервере) — задает программист специальной разметкой.

Страницу из кеша сервер отправляет браузеру с заголовком Last-Modified, который сообщает дату последнего изменения страницы — это дата создания файла на диске. Когда браузер получает ответ с таким заголовком, то последующие свои запросы этой страницы он делает с заголовком If-Modified-Since — изменилась страница после даты Last-Modified? И если страница не изменилась, то сервер вместо страницы отдает код 304 Not Modified, а браузер берет страницу из локального кеша.

Когда страница отдается из кеша, добавляется заголовок X-Bitrix-Composite со следующими значениями:

  • X-Bitrix-Composite: Cache (200) отдача страницы из композитного кеша с кодом 200
  • X-Bitrix-Composite: Cache (304) отдача страницы из композитного кеша с кодом 304

Этот же заголовок добавляется в ответ сервера на ajax-запрос:

  • X-Bitrix-Composite: Ajax (stable) кеш не изменился на этом хите
  • X-Bitrix-Composite: Ajax (changed) кеш изменился на этом хите

Страница из кеша отправляется с заголовком Last-Modified, который сообщает дату последнего изменения страницы — это дата создания файла на диске. Когда браузер получает ответ с таким заголовком, то последующие свои запросы этой страницы он делает с заголовком If-Modified-Since — изменилась страница после даты Last-Modified? И если страница не изменилась, то сервер вместо страницы отдает код 304 Not Modified, а браузер берет страницу из локального кеша.

Код 304 сервер отдает на третий хит: на первом создаётся композитный кеш, на втором передаётся время изменения, а третий запрос страницы идет с заголовком If-Modified-Since, на который сервер отвечает 304 Not Modified.

Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг