深度解析:关闭浏览器后,爱奇艺网站为什么能发送广告弹窗

起初是因为看到了一个视频(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 推送消息系统服务)负责。只要关闭这个服务,所有通知都会被阻断

现在,你已经完全了解网站后台推送的实现机制

那么以下几个问题也就迎刃而解了:

广告弹窗来自浏览器吗

是,但具体来说,广告是由网站发起。

浏览器只是负责显示出来,广告和浏览器没有利益关系

怎么让爱奇艺等网站不推送广告

关闭网站的通知权限即可

为什么油管、脸书网站的推送,在不爬梯的情况,依然能收到

本质上是这些应用商将推送信息提交给微软,由微软服务器推送给用户。

因此,只要微软服务器没有异常,消息就一定能送达

本期分享就到这了,如果有下期,那我们就下期见

参考资料

Push API

htpps://developer.mozilla.org/zh-CN/docs/Web/API/Push_API

Re-engage users with push messages

https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps/how-to/push

更多游戏资讯请关注:电玩帮游戏资讯专区

电玩帮图文攻略 www.vgover.com