服务器推送通过在响应请求之后发送js,css,图像等来工作,而不是等待客户端接收html,解析它并请求资源,从而节省往返。但是,如果客户端在一分钟前获取example.com/about
时已经下载了相同的文件,那么推送example.com
的js,css,图像,字体等是完全浪费带宽,因为客户端已经有了那些文件。
为每个请求保持状态服务器端似乎很昂贵,并且由于HTTP是无状态的,因此不能完成它的工作方式。据推测,客户会在随后的访问中重新请求html,以查看是否有任何更改。
HTTP2服务器如何知道要推送哪些文件?
答案 0 :(得分:1)
有几种技巧可供选择。浏览器可以例如重置流。或者可以使用缓存摘要。
以下是有关该信息的更多信息:
https://www.shimmercat.com/en/blog/articles/cache-digests/
就在今天,有些人正在就缓存摘要进行有趣的对话:
https://lists.w3.org/Archives/Public/ietf-http-wg/2016AprJun/0371.html