网络推送协议如何工作?
Posted
技术标签:
【中文标题】网络推送协议如何工作?【英文标题】:How web push protocol works? 【发布时间】:2020-10-21 16:54:59 【问题描述】:问题
我想知道webpush
协议是如何工作的?它是否保持某种连接打开,例如WebSocket
协议?还是使用类似于polling
的机制?
试过
根据documentationWebPush使用HTTP 2.0服务器推送:
用于向用户代理传递实时事件的简单协议 被描述。该方案使用 HTTP/2 服务器推送。
服务器推送wikipedia:
HTTP/2 服务器推送不是服务器到客户端的通知机制。相反,当客户端可能已经产生了获取资源的请求时,它会使用推送的资源;
HTTP/2 服务器推送示例场景:
考虑一个包含三个资源的网站:index.html、styles.css 和 script.js。当用户通过他们的浏览器连接到本网站的主页时,他们会自动检索 index.html。当浏览器解析 index.html 中的 HTML 文本时,它会找到需要 styles.css 和 script.js 的指令。此时,浏览器将发出请求以获取另外两个文件。
使用 HTTP/2 Push,服务器可以通过制定规则来采取主动,甚至在请求内容之前就触发内容发送。在这个示例场景中,服务器知道任何请求 index.html 的人都需要 style.css 和 script.js,因此它可以立即将它们推送到客户端,而无需等待客户端请求它们。
根据 HTTP/2 服务器推送,WebPush 协议似乎应该在客户端请求之前返回某种通知。但我不确定。所以这是我的问题:它到底是如何工作的?
【问题讨论】:
【参考方案1】:Web 推送协议 [RFC8030] 描述了一种协议,它支持用户代理或应用服务器与推送服务之间的通信。推送服务接收网络请求,对其进行验证并将推送消息传递到适当的浏览器。如果浏览器离线,则消息将排队等待浏览器在线。每个浏览器都可以使用他们想要的任何推送服务,这是开发人员无法控制的。
【讨论】:
以上是关于网络推送协议如何工作?的主要内容,如果未能解决你的问题,请参考以下文章