Service Worker 只能安装在 HTTPS 域上。但是,我看到公司在其 https 域上托管 service worker 和 manifest.json 并能够在 http 域上注册的产品。
示例 - http://www.site1.com可以从https://cdn.site2.com注册 service-worker 。
谁能解释它是如何完成的?
Service Worker 只能安装在 HTTPS 域上。但是,我看到公司在其 https 域上托管 service worker 和 manifest.json 并能够在 http 域上注册的产品。
示例 - http://www.site1.com可以从https://cdn.site2.com注册 service-worker 。
谁能解释它是如何完成的?
基本上这是他们如何做到的:
正如您所说,they host a service worker and manifest.json on their HTTPS domain(通常在您注册时选择的子域上)。
You install their JavaScript client library on your website,并且如果您的网站未启用 HTTPS,他们会使用一种变通方法为访问者订阅推送通知,因为 Web 推送通知仅支持启用 HTTPS 的网站。
他们基本上创建了一个中间对话框,要求您的访问者订阅。当他们单击它时a pop-up window is opened to the HTTPS enabled subdomain,您之前选择的那个。因此,现在浏览器将能够请求许可并在其域上安全地订阅访问者。
之后,您将使用他们的网站或 API 发送所有通知,并且所有通知都将从他们的子域发送,因为下面可见的源将显示他们的 HTTPS 域而不是您的 HTTP 网站 URL。