我目前正在实施 Firebase 以在不完全 HTTPS的webapp 上发送 Webpush 通知。由于 webpsuh 使用的是 service worker,我做了一些研究,并在Google Developers 网站上指出:
您只能在通过 HTTPS 提供的页面上注册 Service Worker,因此我们知道浏览器接收到的 Service Worker 在其通过网络的过程中没有被篡改。
这是否意味着即使网站的其余部分是 HTTP,也可以从 HTTPS 页面注册服务工作者?
提前感谢您的任何澄清!
编辑
我在 w3c Github 上找到了这个对话,它说服务工作者应该通过 HTTPS 提供服务,据我了解,只要通过 HTTPS 提供与服务工作者的通信,就有可能拥有其他 HTTP 页面,我明白了吗对?
从关于规格的辩论中,@jyasskin 说:
如果请求 SW 的页面不安全,并且 SW 是 https 但在攻击者控制的域上,那么您根本没有任何收获。是的,整个应用程序都需要是 https。
但这是在服务工作者规范完全设置之前说的,所以不确定这是否是指定的最终方式。