HTTP 2将支持服务器推送,这是什么意思?

Epo*_*poc 24 server-push http2

我已经阅读了很多关于HTTP 2的内容(它还在开发中),所以我也听说过服务器推送功能,但我的头脑,这还不清楚.

此服务器推送功能是否意味着服务器能够在没有后者发出请求的情况下向客户端发送响应?就像一个vanilla TCP连接?或者我错过了这一点?

gre*_*egw 39

HTTP2推送机制不是像websocket或服务器发送事件那样的通用服务器推送机制.

它专为HTTP对话的特定优化而设计.特别是当客户端请求资源(例如index.html)时,服务器可以猜测它接下来要求一堆相关资源(例如theme.css,jquery.js,logo.png等等)通常,网页可以有10个这样的相关请求.

使用HTTP/1.1,服务器必须等到客户端实际发送对这些相关资源的请求,然后客户端受连接限制,一次只能请求大约6个.因此,在实际发送网页所需的所有相关资源之前,可能需要多次往返.

使用HTTP/2,服务器可以将响应发送到index.html GET推送promises告诉客户端它还将发送theme.css,jquery.js,logo.png等,就好像客户端有请他们.然后,客户端可以取消这些推送,或者只是等待它们被发送而不会导致多次往返的额外延迟.

以下是使用Jetty https://www.youtube.com/watch?v=4Ai_rrhM8gA推送SPDY(HTTP2的基础)的演示.这是一篇关于码头中HTTP2和SPDY的推送API的博客:https://webtide.com/http2-push-with-experimental-servlet-api/

  • AFAIK HTTP2不预测要发送给客户端的内容,作为传输协议.它是如何根据多个文件请求发送多个文件的. (2认同)
  • 由应用程序决定要推送哪些文件.在Jetty中,我们提供了一个使用referrer头来学习资源之间关系的过滤器,但是像JSF这样的框架可能已经知道了关系,因此可能能够推送相关资源. (2认同)