服务端3月1日 20:25
Service Worker 的更新机制是怎样的?## Service Worker 更新机制核心回答
浏览器通过**字节级对比**检测 Service Worker 文件变化,发现差异后启动更新流程:新 Worker 安装 → 进入 waiting 状态 → 旧 Worker 控制的页面全部关闭后激活。整个过程是**非破坏性的**——旧版本继续服务已有页面,新版本等待接管。
三个关键点决定更新行为:
1. **什么时候检查更新?** 用户导航到 Service Worker 作用域内的页面时,或 functional event(push/sync)触发时(距上次检查超过 24 小时),以及手动调用 `registration....服务端3月1日 20:27
如何在 Service Worker 中实现推送通知功能?## 核心回答
Service Worker 推送通知的实现依赖三个 API 协作:**Notification API**(请求权限+显示通知)、**Push API**(订阅推送服务)、**Service Worker**(后台监听 push 事件)。完整流程:请求通知权限 → 订阅推送服务(生成 endpoint)→ 将订阅发送给服务器 → 服务器调用推送服务 → Service Worker 的 push 事件触发 → 调用 showNotification 显示通知。
关键前提:页面必须在 **HTTPS** 环境下运行,且 Service Worker 已注册并激活。
...服务端3月1日 19:32
DNS over HTTPS (DoH) 和 DNS over TLS (DoT) 有什么区别## 直接回答
**DoH 和 DoT 的核心区别在于传输方式**:DoT 用 TLS 直接封装 DNS(端口 853),DoH 把 DNS 塞进 HTTPS 请求(端口 443)。这导致三个关键差异:
1. **隐蔽性**:DoH 流量和普通网页访问无法区分,DoT 端口 853 一眼就能识别
2. **性能**:DoT 协议开销更小,延迟低 2-5ms;DoH 多了 HTTP 头部开销
3. **可控性**:DoT 容易被防火墙拦截但也方便企业审计,DoH 难拦截但也绕过了企业安全策略
**追问**:那 DNS over QUIC (DoQ) 呢?——DoQ 基于 QUIC/U...服务端3月1日 20:24
Service Worker 与 Web Worker 有什么区别?## Service Worker 与 Web Worker 的核心区别
两者都是浏览器提供的后台线程机制,但设计目标完全不同:Web Worker 解决的是主线程阻塞问题,Service Worker 解决的是网络请求控制问题。
## 一图看懂关键差异
| 维度 | Service Worker | Web Worker |
|------|----------------|------------|
| 定位 | 网络代理,拦截和控制请求 | 后台线程,执行耗时计算 |
| 生命周期 | 独立于页面,可被浏览器自动重启 | 随页面存活,页面关闭即销毁 |
| DOM 访问 | ...服务端2月24日 22:56
iframe 有哪些替代方案?如何根据场景选择合适的嵌入方式?## 核心结论
iframe 最适合嵌入不受信任的第三方内容(视频、地图、社交插件),其他场景优先考虑 AJAX、组件化、微前端等替代方案。选型的关键判断依据是:内容是否跨域、是否需要样式隔离、是否要求 SEO 可索引。
## 为什么需要替代 iframe
iframe 的问题不只是"性能差"这么笼统,具体痛点包括:
- **独立的文档上下文**:每个 iframe 创建完整的浏览上下文,内存开销是普通 DOM 节点的数倍
- **通信成本高**:父子页面只能通过 postMessage 通信,数据需要序列化,无法直接共享状态
- **SEO 不可见**:搜索引擎对 iframe...服务端3月1日 20:00
DNS 负载均衡有哪些常见算法?DNS 负载均衡是在 DNS 解析阶段将用户请求分发到不同服务器的技术。它的核心思路是:同一个域名配置多条记录,DNS 服务器按照特定算法决定返回哪条记录对应的地址。面试中常考的是算法原理、各自的局限性,以及 DNS 负载均衡与应用层负载均衡的本质区别。
## 真正在 DNS 层工作的算法
先明确一点:DNS 是无状态协议,每次查询相互独立,DNS 服务器无法感知后端服务器的实时负载或连接数。因此,像"最少连接""最快响应"这类依赖实时状态的算法,在 DNS 层根本无法实现——它们属于应用层负载均衡(Nginx、HAProxy)的范畴。DNS 层能用的算法,本质上都只能基于静态配置或...服务端3月1日 20:50
Service Worker 有哪些安全风险和防护手段?## 为什么 Service Worker 天生需要安全约束
Service Worker 本质是一个浏览器级的网络代理——它能拦截页面发出的所有请求、读写 Cache Storage、接收推送消息。这意味着一旦攻击者控制了 Service Worker,就能在用户毫无感知的情况下窃取数据、注入恶意内容。浏览器因此对 Service Worker 施加了严格的安全限制,而理解这些限制背后的原因,是回答本题的关键。
## HTTPS 是硬性前提
Service Worker 只能在 HTTPS 环境下注册(localhost 例外)。这不是建议,是强制要求。
原因很直接:HTTP ...服务端3月1日 20:04
什么是DDNS动态域名解析?工作原理与配置方法详解## DDNS 动态域名解析是什么
DDNS(Dynamic DNS,动态域名解析)是一种自动更新 DNS 记录的技术,让使用动态 IP 地址的设备能够通过固定域名被访问。
家庭宽带、移动网络等场景下,运营商分配的公网 IP 会不定期变化。如果域名解析记录还指向旧 IP,服务就会中断。DDNS 的核心作用就是解决这一问题:当 IP 变化时,自动将域名解析更新为新 IP。
## 为什么需要 DDNS
### 静态 DNS 的痛点
家庭宽带的 IP 地址由运营商动态分配,可能每隔几小时或几天就换一次。传统 DNS 记录是手动配置的,IP 变了就得人工改记录,否则域名就解析到错误地址...服务端3月1日 20:02
什么是 DNS 预解析?实现方式和踩坑要点有哪些**DNS 预解析**(DNS Prefetching)是前端性能优化中低成本高收益的手段之一。浏览器在加载页面时提前解析可能用到的域名,把 DNS 查询结果缓存起来,等真正请求资源时跳过解析步骤,直接建立连接。
一次 DNS 解析通常耗时 20-120ms,在移动网络下可能更长。对于依赖多个跨域资源的页面,这些延迟会叠加。DNS 预解析把这些查询提前到页面加载的空闲时段,用户几乎感知不到。
## DNS 解析的完整链路
理解预解析的前提是搞清楚 DNS 解析本身经历了什么:
1. **浏览器缓存** — Chrome 对每条 DNS 记录缓存约 60s(TTL 由响应决定),命...服务端3月1日 19:58
什么是 DNSSEC,它如何保证 DNS 安全**DNSSEC(DNS Security Extensions)** 是 DNS 协议的安全扩展,通过数字签名验证 DNS 响应的真实性和完整性,防止缓存投毒、DNS 欺骗等中间人攻击。需要明确的是,DNSSEC 只提供数据认证,不加密 DNS 查询——这是它和 DoH/DoT 的本质区别。
## 为什么需要 DNSSEC
### 传统 DNS 的安全缺陷
DNS 协议设计于 1980 年代,天生没有认证机制。解析器收到一条 DNS 响应后,无法判断这条响应是否来自真正的权威服务器,还是攻击者伪造的。
```
用户查询 www.bank.com
↓
D...