Ответ 1
Механизм push2 HTTP2 не является общим механизмом push-сервера, например, событиями, передаваемыми через веб-сервер или сервер.
Он предназначен для конкретной оптимизации HTTP-разговоров. В частности, когда клиент запрашивает ресурс (например, index.html), сервер может угадать, что он собирается попросить несколько связанных ресурсов (например, theme.css, jquery.js, logo.png и т.д.) Обычно веб-страница может содержать 10 с таких связанных запросов.
С помощью HTTP/1.1 серверу пришлось ждать, пока клиент фактически отправит запрос на эти связанные ресурсы, а затем клиент будет ограничен подключениями, чтобы запрашивать только около 6 штук. Таким образом, может потребоваться много раундов, прежде чем все связанные ресурсы, которые необходимы веб-странице, будут отправлены.
С помощью HTTP/2 сервер может отправить ответ на index.html GET push promises, чтобы сообщить клиенту, что он также отправит theme.css, jquery.js, logo.png и т.д. как будто клиент запросил их. Затем клиент может отменить эти нажатия или просто ждать, пока они будут отправлены без дополнительной задержки нескольких раундов.
Вот демонстрация push с SPDY (базой для HTTP2) с Jetty https://www.youtube.com/watch?v=4Ai_rrhM8gA. Вот блог о push API для HTTP2 и SPDY в причале: https://webtide.com/http2-push-with-experimental-servlet-api/