当前位置: 首页 > 知识库问答 >
问题:

HTTP2服务器推送怎么知道做什么推送?

贡光明
2023-03-14

服务器推送的工作原理是在响应请求后立即发送js、css、图像等,而不是等待客户端接收html、解析它并请求资源,从而节省往返。但是,将js、css、图像、字体等推送给example.com/about,而这些相同的文件在一分钟前获取example.com时已经被客户端下载,这完全是对带宽的浪费,因为客户端已经拥有这些文件。

为每个请求保留状态服务器端似乎很昂贵,而且不可能这样做,因为HTTP是无状态的。大概,客户端会在后续访问中重新请求html,以查看是否有任何更改。

HTTP2服务器如何知道要推送哪些文件?

共有1个答案

狄德泽
2023-03-14

有几种方法可以做到这一点。例如,浏览器可以重置流。也可以使用缓存摘要。

以下是更多相关信息:

https://www.shimmercat.com/blog/cache-digests/

就在今天,一些人正在就缓存摘要进行有趣的对话:

https://lists.w3.org/Archives/Public/ietf-http-wg/2016AprJun/0371.html

 类似资料:
  • Hprose 2.0 最大的亮点就是增加了推送功能的支持,而且这个功能的增加是在不修改现有通讯协议的方式下实现的,因此,这里的推送服务,即使不是 Hprose 2.0 的客户端或者服务器也可以使用。 当然,在旧版本的客户端调用推送服务,或者在旧版本的服务器上自己实现推送,需要多写一些代码。所以,如果你所使用的语言支持 Hprose 2.0,那幺推荐直接使用 Hprose 2.0 的推送 API 来

  • 我从Perfoce克隆了一个Repo到Git本地,并将其所有历史记录称为,然后我将其推送到远程回购,并使用该远程回购将合并到下。 无法将部分历史记录从Perforce导入Git,无论是还是。不管怎样,一切顺利,我删除了本地回购协议和远程回购协议。 现在,Perforce depot上有更改,因此我再次克隆了所有历史记录,我想推送,然后与合并,但我不想要整个历史记录(仅新更改)。 说有这个历史,它是

  • 问题内容: 在此处阅读有关服务器推送的信息。 我想将数据从Web应用程序实时推送到客户端。 我一直在将TCP套接字作为选项之一。 对于HTTP,我在这里找到了各种Java,PHP,Python和其他框架。但是我不知道这些工具是否支持Push。 您对实施服务器推送有什么建议和框架? 您会倡导使用哪种语言,为什么? 问题答案: 我现在正在使用Orbited,太好了! 如果您正在聊天或订阅类型的东西,请

  • 我已经读了很多关于HTTP 2(仍在开发中)的东西,所以我也听说了服务器推送功能,但我想,这还不清楚。 此服务器推送功能是否意味着服务器将能够向客户端发送响应,而无需后者发出请求?就像普通的TCP连接一样?还是我没抓住重点?

  • 从文档中我可以看出推送API和服务器发送事件都是半双工的,但为什么两种不同的技术具有相同的功能?推送API中是否有更重要的内容?

  • 服务器端提供了比较多的关于推送的 API,包括广播,多播和单播方式的推送,还有超时,心跳,推送事件等设置。 Timeout 字段 该字段用于设置推送空闲超时。默认值为 120 秒,即 2 分钟。 当服务器发布了推送主题后(后面会专门介绍推送),客户端会跟服务器端保持一个长连接,如果达到超时时间,仍然没有任何消息推送给客户端,则返回 nil,此时,如果客户端仍然在线的话,则会立即再次发送获取推送主题