这是前端/后端/网络最经典的面试题,我给你整理成面试能直接背、逻辑清晰、面试官爱听的完整版,按流程一步步说就行。
从输入 URL 到页面显示全过程(面试标准答案)
1. URL 解析
- 判断是合法 URL 还是搜索内容
- 解析:协议、域名、端口、路径、参数
2. DNS 域名解析
- 浏览器缓存 → 系统缓存 → 路由器缓存 → ISP DNS 缓存
- 递归查询 + 迭代查询,最终拿到服务器 IP
3. 建立 TCP 连接(三次握手)
- SYN → SYN+ACK → ACK
- 建立可靠传输通道
4. 发送 HTTP/HTTPS 请求
- 构造请求行、请求头、请求体
- HTTPS 会先进行 TLS 握手 加密
5. 服务器处理请求并返回响应
- 负载均衡 → 后端服务 → 数据库/业务逻辑
- 返回:状态码、响应头、HTML 内容
6. 浏览器解析 HTML,构建 DOM 树
- 从上到下解析
- 遇到 CSS 会并行下载,解析生成 CSSOM
- 遇到 JS 默认阻塞解析,必须等 JS 执行完再继续
7. 生成渲染树(Render Tree)
- DOM + CSSOM 合并 → 渲染树
- 只包含要显示的节点,不包含 display: none
8. 布局(Layout / Reflow)
- 计算每个节点的位置、大小
9. 绘制(Paint)
- 绘制颜色、背景、边框、阴影等
10. 合成(Composite)
- 将各层合成,显示到屏幕
11. 关闭 TCP 连接(四次挥手)
- 请求完成后断开连接
面试加分简短版(30 秒口述)
- 解析 URL,DNS 查询拿到 IP
- 三次握手建立 TCP 连接
- 发送 HTTP/HTTPS 请求
- 服务器返回 HTML
- 浏览器解析 HTML → DOM + CSSOM → 渲染树
- 布局 → 绘制 → 合成显示页面
- 四次挥手断开连接