1

浏览器客户端是否可以使用任何特定的规范进程来动态鼓励服务器在客户端需要实际使用它们之前使用 HTTP/2 服务器推送将其他请求的项目推送到浏览器缓存中(不讨论服务器端事件或 WebSockets,在这里,顺便说一句,而是 HTTP/2 服务器推送)?

4

2 回答 2

1

没有(尚未)正式指定浏览器要求服务器推送资源。

浏览器可以确定需要哪些辅助资源来呈现主要资源,并且可能会在随后的带有 HTTP 标头的请求中机会主义地将此信息发送到服务器,但正如我所说,这还没有指定。

[免责声明,我是 Jetty HTTP/2 维护者] 另一方面,服务器可能会了解浏览器要求的资源,并且可能会构建相关资源的缓存,然后将其推送给客户端。

Jetty 提供了一个可配置的PushCacheFilter来实现上述策略,并实现了一个HTTP/2 Push Demo

于 2015-07-30T19:55:33.957 回答
1

服务器推送的目的是在浏览器知道需要哪些相关文件之前,服务器将附加文件(例如 javascripts、css)与请求的 URL(例如 HTML 页面)一起发送到浏览器,从而节省往返并提高网页加载速度。如果浏览器已经知道需要什么资源,它可以通过正常的 HTTP 调用来请求。

于 2017-01-06T03:43:01.687 回答