Подтвердить что ты не робот

HTTP 2 будет поддерживать push-сервер, что это значит?

Я прочитал много нового о HTTP 2 (который все еще находится в разработке), поэтому я также слышал о том, как нажимать сервер но я голова, это не понятно.

Означает ли эта функция нагрузка на сервер, что сервер сможет отправлять ответ клиенту, если последний не делает запрос? Так же, как ванильное TCP-соединение? Или мне не хватает смысла?

4b9b3361

Ответ 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/

Ответ 2

По сути ваше понимание правильное, однако, есть намного больше.

Сервер сможет отправлять ресурс клиенту только после того, как был сделан запрос на HTTP-страницу, и ресурсы, необходимые для этой страницы для правильной визуализации, то есть изображения, файлы JavaScript, CSS и т.д., были определены. Механизм, отвечающий за это, - это серверная структура. В Java это будет Servlet 4 и, возможно, JSF.

Сервер не может просто отправлять какой-либо ресурс клиенту, когда ему это кажется. Только при вышеуказанных обстоятельствах это произойдет, и клиент всегда сможет отклонить запрос сервера, чтобы нажимать ресурс.

Механизм HTTP/2-серверного толчка был действительно хорошо разработан и чтобы с ним справиться. Я рекомендую этот обзор HTTP/2 и это углубленная статья, погружающаяся во внутренние части протокола HTTP/2.