地址栏输入 URL 并敲下回车后发生了什么
从输入 URL 到页面展示的全过程:
1. URL 解析
- 检查格式是否合法(是否带协议、域名等)
- 判断是搜索关键词还是完整网址(有时会跳转到搜索引擎)
2. DNS 查询
- 将域名解析为 IP 地址
- 使用本地缓存、操作系统缓存、本地域名服务器多层级查找
- 找不到就递归查询 DNS 服务器
DNS协议介绍
3. TCP 连接
- 通过三次握手建立可靠的数据传输连接
- 通过四次挥手保证数据完整传输后再断开连接
- 若是 HTTPS,还需进行 TLS/SSL 握手(包括证书验证和密钥协商)
TCP 协议介绍
4. HTTP 请求
- 浏览器构造并发送 HTTP 请求,内容包括:
- 请求 URL 路径
- 请求方法(如 GET/POST/PUT/DELETE)
- 请求头(headers)和可能的请求体(body)
5. 服务器接收请求返回响应
- 服务器接收请求,处理后返回响应(如 HTML 文档)
- 响应包括:
- 状态码(200、301、404 等)
- 响应头(如 Content-Type)
- 响应体(HTML 内容)
6. 浏览器接收响应
- 浏览器网络线程接收到响应后,将其交给渲染主线程处理
7. 页面渲染
渲染流程介绍:
- 解析 HTML → 构建DOM树(得到页面结构信息)
- 解析CSS → 构建CSSOM树(得到节点样式规则)
- 合并DOM与CSSOM → 生成Render渲染树(计算节点最终样式)
- 布局 → 生成布局树(计算节点几何信息)
- 绘制 → 进行栅格化(转化为屏幕像素)
- 合成 → 显示到屏幕