题目重点:从浏览器网络面板定位 DNS、连接、TLS、HTTP 与 CORS,而非直接重启服务。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 先区分无法建连接、HTTP错误与浏览器拒绝响应;不假定某一个原因。
解题路线
- 收集URL、时间、受影响范围、network错误/状态、请求ID和最近变更。浏览器和命令行结果不同是重要线索。
- 依次查域名解析、路由/端口连通、TLS证书/SNI、代理/LB、backend健康与请求日志。用能保留Host/TLS语义的目标地址测试,避免绕过域名后得出错误结论。
- HTTP响应已到达但JS不可读时看CORS/preflight、cookie/SameSite和mixed content,不将其等同TCP断开。服务器端curl成功不证明浏览器策略允许。
- 逐层验证,缩小到具体地域/网络/版本,先做最小可逆修复,回归原浏览器路径和监控。
手动走一遍
浏览器显示CORS错误但curl返回200,重点检查Origin/预检和凭证策略;不能把所有请求改成no-cors声称修复。TLS过期可能阻止连接,DNS刷新不会修复证书。
规模与取舍
排查成本按故障范围;诊断请求需超时和限速,避免压测扩大故障。看连接/请求各阶段耗时。
易错点与追问
容易失分的边界
- 拿HTTP500当DNS失败。
- curl成功即前端没问题。
- 关闭证书校验作为正式修复。
继续深挖
- 只有某些用户失败怎样缩小范围?
- 怎样分离LB与应用故障?
