【Windows】关闭浏览器后,爱奇艺网站为什么能发送广告弹窗
起初是因为看到了一个视频(BV17rT26jEM5),博主在360论坛反馈“极速浏览器X”弹出广告的问题,却被版主嘲讽:“极速X没有广告,少看豆包”
在第二天的澄清视频(BV1axTR6bEzG)中,博主说明,在360工程师的协助下
已确认该广告实际来自爱奇艺网站
那么问题来了:浏览器都关了,网站为什么还能弹出广告?
本文将以微软 Edge浏览器 为例,解析网站后台推送广告的原理
先来看一张演示图:
在不打开 Edge 浏览器的情况下,依然能收到来自网站的通知

这种后台通知技术叫做 Web Push,在2023年后获得了各大浏览器的广泛支持,不少同学可能还不太熟悉
具体流程如下:
网站首先会申请并获得通知权限
随后,网站向浏览器注册一个后台运行的脚本——Service Worker
Edge 浏览器收到网站的后台推送请求后,
会向微软服务器注册订阅消息,
并将当前用户的订阅地址返回给网站

获得订阅地址后,网站服务器 便可以在任意时间点告知微软服务器“我要推送消息”
由微软服务器转发给 Edge
注意这里说的网站服务器可以发起推送,而不是你所打开的网页
网站服务器是24小时不间断运行的

完全关闭edge浏览器能阻止推送么?
不少人认为,关闭浏览器后仍能收到推送,是因为浏览器并没有真正关闭,仍在后台运行

其实不然
从第一张演示图可以看到,当我完全关闭 Edge(没有任何后台进程)后,依然能收到推送通知
本文通篇以 Edge 浏览器为例,不排除其他浏览器确实是依靠后台进程实现推送

那究竟是谁在负责推送呢?
从事件管理器中可以看到,从接收消息、调用 Edge,到关闭 Edge,全部由 PushNotification-Platform 完成

也就是说,这项功能由 WpnService(Windows 推送消息系统服务)负责。只要关闭这个服务,所有通知都会被阻断

现在,你已经完全了解网站后台推送的实现机制
那么以下几个问题也就迎刃而解了:
广告弹窗来自浏览器吗
是,但具体来说,广告是由网站发起。
浏览器只是负责显示出来,广告和浏览器没有利益关系
怎么让爱奇艺等网站不推送广告
关闭网站的通知权限即可
为什么油管、脸书网站的推送,在不爬梯的情况,依然能收到
本质上是这些应用商将推送信息提交给微软,由微软服务器推送给用户。
因此,只要微软服务器没有异常,消息就一定能送达
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭