SWE / SRE / Frontend · System Design / 基础

TikTok 浏览器连不上后端:分层证据与最小复现

从浏览器网络面板定位 DNS、连接、TLS、HTTP 与 CORS,而非直接重启服务。

题目重点:从浏览器网络面板定位 DNS、连接、TLS、HTTP 与 CORS,而非直接重启服务。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 先区分无法建连接、HTTP错误与浏览器拒绝响应;不假定某一个原因。

解题路线

  1. 收集URL、时间、受影响范围、network错误/状态、请求ID和最近变更。浏览器和命令行结果不同是重要线索。
  2. 依次查域名解析、路由/端口连通、TLS证书/SNI、代理/LB、backend健康与请求日志。用能保留Host/TLS语义的目标地址测试,避免绕过域名后得出错误结论。
  3. HTTP响应已到达但JS不可读时看CORS/preflight、cookie/SameSite和mixed content,不将其等同TCP断开。服务器端curl成功不证明浏览器策略允许。
  4. 逐层验证,缩小到具体地域/网络/版本,先做最小可逆修复,回归原浏览器路径和监控。

手动走一遍

浏览器显示CORS错误但curl返回200,重点检查Origin/预检和凭证策略;不能把所有请求改成no-cors声称修复。TLS过期可能阻止连接,DNS刷新不会修复证书。

规模与取舍

排查成本按故障范围;诊断请求需超时和限速,避免压测扩大故障。看连接/请求各阶段耗时。

易错点与追问

容易失分的边界

  • 拿HTTP500当DNS失败。
  • curl成功即前端没问题。
  • 关闭证书校验作为正式修复。

继续深挖

  • 只有某些用户失败怎样缩小范围?
  • 怎样分离LB与应用故障?
✓已复制微信号!