The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск nginx 1.13.9 c поддержкой технологии HTTP/2 Server Push "
Отправлено opennews, 20-Фев-18 21:11 
Подготовлен (https://www.nginx.com/blog/nginx-1-13-9-http2-server-push/) выпуск основной ветки высокопроизводительного HTTP-сервера nginx 1.13.9 (http://nginx.org/), в котором реализован (http://nginx.org/en/CHANGES) механизм Server Push (https://www.w3.org/TR/preload/#server-push-http-2) для протокола HTTP/2. Server Push предоставляет возможность отправки ресурсов от сервера к клиенту, не дожидаясь их явного запроса  (например, подобным образом можно передавать файлы CSS, скрипты и изображения, которые необходимы для отрисовки страницы).


Для отправки push-запросов используется (https://jakearchibald.com/2017/h2-push-tougher-than-i-thought/) уже установленное клиентом соединение. Т.е. клиент подключается и запрашивает определённую страницу, после этого сервер на основании своих настроек или содержимого переданного клиентом заголовка Link сам инициирует передачу определённых ресурсов через уже установленное соединение HTTP/2, не дожидаясь  запроса этих ресурсов от клиента. При этом клиент может отвергнуть попытку push-отправки, вернув флаг RST_STREAM.


Переданный через push-обращение контент сохраняется на стороне клиента в специальном кэше, ассоциированном с текущим HTTP/2-соединением. Когда в процессе обработки страницы клиент дойдёт до запроса связанных с ней ресурсов (css, js, картинки и т.п.), перед фактической отправкой каждого запроса, будет выполнена проверка в кэше. Если ресурс уже передан сервером и находится в кэше, то клиент загрузит этот ресурс из локального кэша не формируя внешний запрос к серверу. После закрытия соединения HTTP/2 содержимое кэша очищается.


При этом есть важные особенности: Глобальный кэш браузера имеет больший приоритет, чем кэш соединения HTTP/2, поэтому даже если  push-запросом был передан более свежий ресурс, браузер продолжит использование ресурса из своего глобального кэша, если он не потерял актуальность (трафик  потраченный на push-запрос будет потрачен в пустую). С другой стороны, так как одно HTTP/2 соединение может обслуживать загрузку разных страниц с одного хоста, то загруженные через push ресурсы могут совместно использоваться при загрузке разных страниц.

Для управления отправкой push-запросов в новом выпуске nginx реализованы директивы:


-  "http2_push {uri} (https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2...)" для включения упреждающей отправки заданных ресурсов (например, "http2_push /main.css") в составе первого ответа, не дожидаясь их явного запроса. В URI допустимо использование переменных. В одном блоке конфигурации может быть задано несколько директив http2_push.  Для обеспечения должного уровня защиты обрабатываются только относительные пути к ресурсу;

-  "http2_push_preload (https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2...)" - данные о ресурсах, которые следует  передавать через Server Push, определяются на основе анализа содержимого отправляемых клиентом HTTP-заголовков Link;
-  "http2_max_concurrent_pushes (https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2...)" - максимально допустимое число одновременных push-запросов, сопровождающих ответ.

URL: https://www.nginx.com/blog/nginx-1-13-9-http2-server-push/
Новость: http://www.opennet.ru/opennews/art.shtml?num=48109

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру