WebPush 协议由 RFC 8030(使用 HTTP Push 投递)和 RFC 8291(消息加密)定义。
Web Push 是一种用于向网页浏览器投递推送通知的标准化协议。它使用 Push API,这是一种标准的 Web API,使网站能够注册并接收推送消息。Push API 允许网站向用户的浏览器发送推送消息,即使用户当前未在浏览该网站。
要使用 Web Push,网站首先需要从用户的浏览器获取推送订阅。订阅由唯一的端点 URL 和加密密钥组成。端点 URL 是网站可以用来向用户浏览器发送推送消息的 URL,加密密钥用于加密和解密推送消息。
一旦网站获得推送订阅,就可以通过向端点 URL 发送 HTTP 请求向用户浏览器发送推送消息。推送消息以称为 Web Push Protocol Message 的特殊格式发送,由一组头部和有效载荷组成。头部包含加密密钥和消息的 TTL(生存时间)等信息,有效载荷包含消息的实际内容。
当用户的浏览器收到推送消息时,它首先使用加密密钥解密消息。然后它向用户显示通知,以及用户可以采取的任何其他操作,例如关闭通知或打开网站。
为确保推送消息的安全性和隐私性,Web Push 使用端到端加密,并要求推送订阅通过安全连接(如 HTTPS)获取。此外,该协议提供了验证推送消息发送方身份的机制,并防止滥用(如限制网站可向用户发送的推送消息数量)。
有 2 个组件支持 WebPush: