Разработчики Chrome объявили о прекращении поддержки механизм Server Push в протоколах HTTP / 2 и gQUIC, а также не реализовывать его для протокола HTTP / 3, который находится на стадии стандартного утверждения. Технология Server Push изначально не предусмотрена в протоколе HTTP / 1.1.
Причина исключения желание избавиться от большого усложнения в кодев контексте отсутствия спроса и наличия только теоретических предпосылок для эффективности оптимизации на основе Server Push.
технология Server Push определен в стандарте HTTP / 2 и направлен на оптимизацию загрузки данных.
Помимо браузеров, основанных на движке Chromium, поддержка Server Push в настоящее время реализована в Firefox и Safari, а на стороне сервера - в nginx и Apache httpd.
С помощью Server Push, сервер может отправлять ресурсы клиенту, не дожидаясь вашего явного запроса. Предполагается, что таким образом сервер может ускорить загрузку страницы, поскольку файлы CSS, скрипты и изображения, необходимые для рендеринга страницы, уже будут переданы на его сторону, когда клиент запросит их.
Клиент подключается и запрашивает конкретную страницу, после чего сервер на основе своей конфигурации или содержимого заголовка ссылки, отправленного клиентом, инициирует передачу определенных ресурсов через уже установленное соединение HTTP / 2, не дожидаясь запроса этих ресурсов со стороны клиента.
Контент, передаваемый посредством push-вызова, сохраняется на стороне клиента в специальном кэше, связанном с текущим соединением HTTP / 2.
Когда в процессе рендеринга страницы клиент достигает запроса на связанные с ним ресурсы (css, js, изображения и т. Д.), проверка кеша выполняется перед фактической отправкой каждого запроса. Если ресурс уже был передан сервером и находится в кэше, клиент выгружает этот ресурс из локального кеша, не делая внешний запрос к серверу.
HTTP / 3 - это квази-RFC протокол, который также определяет push-сервер.
В настоящее время Chrome поддерживает обработку push-передач через HTTP / 2 и gQUIC, и это намерение состоит в том, чтобы удалить поддержку обоих протоколов. Chrome не поддерживает push через HTTP / 3, и добавление поддержки не входит в план.
Поддержание такого кеша значительно усложняет реализацию. Server Push на стороне клиента, но это не приводит к заметному ускорению загрузки по сравнению с упреждающим запросом ресурсов через тег «preload» и, согласно некоторым исследованиям, даже увеличивает задержку.
Согласно статистике Google, Технология Server Push не распространяется должным образом. Например, за последние 28 дней 99,95% соединений HTTP / 2 не использовали Server Push. Аналогичные показатели наблюдались во время исследования в июне 2019 года, то есть роста развертываний Server Push нет.
Кроме того, в этом году браузером использовалось только 40% сообщений, полученных с помощью Server Push, а два года назад этот показатель составлял 63,51% (необработанные сообщения были неверными, не соответствовали обработанной странице или уже находились в кеше) .
Вместо Server Push для оптимизации нагрузки страницы, намеревается использовать тег , на основе которого браузер может запрашивать ресурс, не дожидаясь его использования на странице.
С одной стороны, предварительная загрузка, по сравнению с Server Push, приводит к ненужному обмену пакетами (RTT), но, с другой стороны, предотвращает отправку ресурсов, которые уже находятся в кеше браузера.
В целом разница в задержке при использовании Server Push и предварительной загрузки считается незначительной. Помимо оптимизации загрузки ресурсов, механизм Server Push также может использоваться для передачи данных с сервера на клиент, но для этой цели больше подходит протокол WebTransport (на основе QUIC), стандартизация которого находится на стадии черновика. ...
источник:https://groups.google.com