我可以使用 HTTP2 Server 推送机制来更新已经发送的资源吗?
Posted
技术标签:
【中文标题】我可以使用 HTTP2 Server 推送机制来更新已经发送的资源吗?【英文标题】:Can I use HTTP2 Server push mechanism to update a resource already sent? 【发布时间】:2017-03-04 10:20:46 【问题描述】:我可以使用 HTTP2 Server 推送机制来更新客户端已知的资源吗?
例子:
我在https://myserver.org/myresource.json
下有一些资源返回"state": "off"
一旦状态从“关闭”变为“开启”,我想将"state": "on"
推送到同一网址下的客户端(即https://myserver.org/myresource.json
)。
感谢您的支持!
【问题讨论】:
顺便说一句:对于那些对我问的原因感兴趣的人:我想摆脱 w3.org/Submission/2016/SUBM-viwi-protocol-20161213 中的 WebSocket 额外通道 【参考方案1】:您可以推送它,但它只会更新客户端缓存,不会更改网页中的任何内容。为此,您需要客户端重新获取资源(通过 XHR/fetch),这可能会直接使用缓存中的值。
您可以在此处找到一些示例:https://www.igvita.com/2013/06/12/innovating-with-http-2.0-server-push/ 在用于服务器推送的客户端通知一章中。
我个人并没有发现它有太多用处,宁愿直接通过 websockets 或 SSE 发送更新的内容。
【讨论】:
嗯.. 这有点令人失望。但不知何故,我期待这样的事情,它的起源肯定是为了为网页预缓存资源以上是关于我可以使用 HTTP2 Server 推送机制来更新已经发送的资源吗?的主要内容,如果未能解决你的问题,请参考以下文章