📄 计算机基础 🟡 进阶 ⏱ 9 分钟

🌐 浏览器输入 URL 到页面显示全过程

超高频过程题:DNS 解析 → TCP 握手 → TLS 握手 → HTTP 请求 → 浏览器渲染,五阶段讲透。

1

五阶段总览

① URL解析+DNS域名 → IP
➜
② TCP 三次握手建立连接
➜
③ TLS 握手HTTPS 加密协商
➜
④ HTTP 请求响应收发数据
➜
⑤ 浏览器渲染DOM→Layout→Paint
🔄 面试分层回答最清晰:DNS → TCP → TLS → HTTP → 渲染
2

阶段一:URL 解析 & DNS 查询

🔗 解析 URL

浏览器先解析 URL,提取协议(HTTP/HTTPS)、域名、端口、路径。

🧭 DNS 多级缓存查询

① 浏览器缓存 → ② 操作系统缓存 → ③ hosts 文件 → ④ 本地 DNS 服务器(递归)

本地 DNS 再逐级查:根域名服务器 → TLD 服务器 → 权威 DNS。

最终返回域名的 IP 地址。

🎬 查一个域名 www.example.com
浏览器缓存
先看浏览器自己记没记过这个域名的 IP
OS 缓存 / hosts
没命中 → 查操作系统缓存和 hosts 文件
本地 DNS
再没命中 → 发给本地 DNS 服务器(递归查询)
根/权威 DNS
本地 DNS 迭代查根服务器 → .com 服务器 → 权威 DNS → 拿到 IP
返回
把 IP 返回浏览器,浏览器开始连接
3

阶段二、三:TCP 握手 + TLS 握手

🤝 TCP 三次握手

拿到 IP 后,建立 TCP 连接:
SYN → SYN+ACK → ACK(约 1.5 RTT)。

(就是前面学过的三次握手)

🔐 TLS 握手(仅 HTTPS)

HTTPS 比 HTTP 多了 TLS 握手(约 2-RTT 额外延迟):
ClientHello → ServerHello+证书 → 证书验证+密钥协商 → Finished。

HTTP/2 多路复用可减少连接开销。

4

阶段四:HTTP 请求与响应

📨 构造并发送请求

浏览器构造 HTTP 请求:GET /path HTTP/1.1 + Host + Headers。

服务器处理请求,返回响应:200 OK + 页面内容,或 304 Not Modified(走缓存)。

⚡ 资源加载

返回的 HTML 里还引用了 CSS、JS、图片等外部资源,浏览器会发起新的 HTTP 请求逐个加载。

HTTP/2 多路复用可并行传输,加快加载。

5

阶段五:浏览器渲染

📄 解析 HTML生成 DOM 树
➜
🎨 解析 CSS生成 CSSOM 树
➜
🧬 合并生成 Render Tree
➜
📐 布局Layout/Reflow 算位置
➜
🖌️ 绘制Paint 显示到屏幕
🔄 渲染过程中可能多次 Reflow 和 Repaint
🎬 渲染五步
① DOM 树
解析 HTML 标签,构建文档对象模型树
② CSSOM 树
解析 CSS,构建样式对象模型树
③ Render Tree
DOM + CSSOM 合并成渲染树
④ Layout
计算每个元素的位置和大小(布局/回流)
⑤ Paint
把像素绘制到屏幕上,用户看到页面
6

高频追问

🔍
DNS 用 TCP 还是 UDP

标准查询用 UDP 53;区域传输用 TCP。

🐛
DNS 解析失败

尝试 hosts 文件、检查网络连接。

⏱️
大概多少步

约 7-8 个大阶段,面试时分层(DNS→TCP→TLS→HTTP→渲染)回答最清晰。

一句话总结

从浏览器输入 URL 到页面显示分五阶段:① URL 解析 + DNS 多级缓存查询(浏览器→OS→hosts→本地DNS→根/TLD/权威);② TCP 三次握手;③ TLS 握手(HTTPS 才有,额外 2-RTT);④ HTTP 请求响应(200/304);⑤ 浏览器渲染(HTML→DOM、CSS→CSSOM、合并 Render Tree、Layout、Paint)。面试分层回答最清晰。

🎤 面试问答 · 口语化回答
这道超高频过程题考察对网络协议栈的整体理解,面试官常中途打断追问细节:
面试官从浏览器输入 URL 到页面显示,全过程是怎样的?
你

我分五个阶段讲。第一 URL 解析和 DNS 查询,浏览器解析出协议、域名、端口、路径,然后查 DNS,从浏览器缓存到操作系统缓存到 hosts 再到本地 DNS 服务器,本地 DNS 递归查根服务器、TLD 服务器、权威服务器拿到 IP。第二 TCP 三次握手建立连接。第三如果是 HTTPS 还有 TLS 握手,验证证书、协商密钥。第四浏览器构造 HTTP 请求,服务器返回 200 或 304。第五浏览器渲染,解析 HTML 生成 DOM 树、解析 CSS 生成 CSSOM、合并成渲染树、算布局、最后绘制到屏幕。

💡 加分点:分层回答五阶段是最清晰的框架,面试官打断追问哪段都能接上。
面试官DNS 解析是怎么一步步找到 IP 的?
你

DNS 是多级缓存的。先查浏览器缓存,再查操作系统缓存和 hosts 文件,都没命中就发给本地 DNS 服务器做递归查询。本地 DNS 服务器再迭代查:先问根域名服务器知道不知道,根服务器指引它去问 TLD 服务器比如 .com 服务器,TLD 再指引去问权威 DNS 服务器,权威服务器才真正存着这个域名对应的 IP,返回给本地 DNS,再返回给浏览器。

💡 加分点:能说清「递归(本地DNS内部)vs 迭代(根→TLD→权威)」的区别,是明显加分点。
面试官浏览器渲染的流程是怎样的?
你

浏览器拿到 HTML 后,先解析 HTML 构建 DOM 树,同时解析 CSS 构建 CSSOM 树,然后把两者合并成渲染树 Render Tree,接着做布局 Layout 也叫回流,计算每个元素的位置和大小,最后是绘制 Paint 把像素画到屏幕上。过程中遇到外部资源比如 JS、CSS、图片会发新的 HTTP 请求,渲染过程也可能多次回流和重绘。

💡 加分点:能讲出 DOM→CSSOM→RenderTree→Layout→Paint 五步,并提到外部资源和回流重绘,说明你懂前端渲染细节。
📝 读完打卡 · 写下你的收获 读完了?来打卡吧
用一句话写下你从这篇学到的最大收获,检验自己是否真的懂了 👇
⏱ 00:00 🔥0分