题目重点:按缓存、传输和渲染路径解释关键技术,区分各协议条件并定位首屏瓶颈。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 训练输入HTTPS URL,具体连接复用、HTTP版本、缓存和浏览器实现需按实际场景确认。
解题路线
- 先解析URL并检查导航/缓存策略,可能从HTTP缓存或Service Worker取内容,并非每次都从DNS到连接完整重做。解释常见新连接路径时先注明冷启动条件。
- 域名解析获得服务地址,随后选择连接。HTTPS常见TCP加TLS用于HTTP/1.1或HTTP/2,HTTP/3使用QUIC;不能说所有网页都一定TCP三次握手。
- HTTP请求含方法、路径、headers和凭证策略,返回状态、headers与内容;重定向、内容压缩、缓存验证和跨域策略可增加或减少往返,资源请求可并行/复用。
- HTML解析建立DOM,CSS构建样式规则,计算样式、布局、绘制与合成;脚本与样式加载会影响解析/渲染时机,图片字体可能导致布局变化。并非所有阶段仅执行一次。
- 首屏慢要分DNS/连接/TTFB/资源下载/主线程工作,使用瀑布与性能时间线定位。服务端快并不保证手机低端CPU上布局脚本快,弱网与缓存状态应分测。
- 测试HTTPS证书、重定向循环、离线缓存、错误响应、慢资源、JS失败、响应式与可访问内容;关注首屏和交互就绪,不只看最后load事件。
手动走一遍
同站第二次导航可能复用连接并命中缓存,不能把冷启动握手成本重复算。HTML很小但同步大脚本阻塞主线程,TTFB正常仍可能首屏晚;应从时间线分离网络和CPU。
规模与取舍
延迟由往返、字节/带宽、服务器和渲染工作组成,不给单一渐近界。并行请求受连接/优先级约束,缓存命中可跳过网络,DOM规模与脚本算法影响CPU。
易错点与追问
容易失分的边界
- 每次请求都新DNS新连接。
- 所有HTTP都必须TCP。
- load事件等同用户可交互。
继续深挖
- 弱网下怎样定位首屏?
- 缓存错误如何排查?
- 脚本加载属性怎样影响解析?
