news 2026/4/23 13:03:53

[特殊字符] 在浏览器地址栏输入 URL 后,页面是怎么一步步显示出来的?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[特殊字符] 在浏览器地址栏输入 URL 后,页面是怎么一步步显示出来的?
这是一个前端面试 100% 会被问到的问题
但也是一个90% 的人答不完整的问题

你可能会说:

  • “DNS 解析
  • “请求 HTML”
  • “解析 DOM”
  • “渲染页面”

👉但如果继续追问:

  • CSS 为什么会阻塞渲染?
  • JS 为什么会卡住页面?

  • 回流和重绘
    到底差在哪?

  • 浏览器内核到底在干嘛?

很多人就开始“凭感觉回答了”。

这篇文章,我会用尽量通俗、不堆术语的方式,带你完整走一遍:

从你敲下回车,到页面真正出现在屏幕上,中间到底发生了什么?

一、先给结论:浏览器做了哪几件大事?

不讲细节,先给你一条完整主线👇

输入 URL → 页面展示,大致分 9 步:

  1. 解析 URL(域名 / IP)
  2. DNS 解析(域名 → IP)
  3. 向服务器请求 HTML(通常是 index.html)
  4. 解析 HTML,生成 DOM Tree
  5. 解析 CSS,生成 CSSOM Tree
  6. DOM + CSSOM → Render Tree
  7. Layout(计算位置和大小)
  8. Paint(绘制像素)
  9. Composite(图层合成,GPU 加速)

你现在只需要记住一句话:

浏览器做的事情,本质上就是:
把“代码”一步步变成“像素”。

后面我们逐个拆。

二、URL、域名、IP、DNS:浏览器是怎么找到服务器的?

1️⃣ IP 是什么?

一句话:

IP 地址 = 服务器在互联网上的门牌号

比如:
101.34.243.124

  • 公网 IP 在整个互联网中是唯一的
  • 只要你知道 IP,就能直接访问服务器

2️⃣ 那为什么还要域名?

因为 IP:

  • 难记
  • 不符合人类直觉

所以就有了:

  • google.com
  • baidu.com
  • juejin.cn

👉域名,本质上就是 IP 的“别名”

3️⃣ DNS 到底在干嘛?

DNS 只干一件事:

把「好记的域名」翻译成「真实的 IP 地址」

流程非常简单:

你输入 juejin.cn ↓ DNS 查询 ↓ 得到一个 IP ↓ 浏览器去这个 IP 对应的服务器请求资源

4️⃣ 公网 IP 和私有 IP 的区别

  • 公网 IP
    • 全网唯一
    • 能被外部访问
  • 私有 IP
    • 只在局域网内有效
    • 学校 / 公司 / 家庭常见

三、为什么浏览器一上来就请求 index.html?

你有没有想过一个问题:

我明明只输入了域名,
为什么服务器知道要返回 index.html?

原因很简单:

  • 浏览器访问服务器后
  • 默认请求一个入口文件
  • 这个文件几乎永远叫:index.html

所以你会发现:

  • Vue / React 项目最终都会打包出index.html
  • 服务器部署的,其实是一堆静态资源
  • HTML 是一切渲染的起点

四、浏览器内核到底是什么?为什么老爱被问?

很多人会说:

  • Chrome 是 Blink 内核
  • Firefox 是 Gecko
  • Safari 是 WebKit

内核到底是啥?

一句话解释:

浏览器内核 = 负责解析 HTML / CSS / JS,并把页面渲染出来的核心模块

也叫:
渲染引擎(Rendering Engine)

常见关系👇

浏览器内核
Chrome / Edge / OperaBlink
SafariWebKit
FirefoxGecko
IETrident(已淘汰)

五、浏览器是如何一步步把页面“画”出来的?

这一部分是整个问题的核心

1️⃣ 解析 HTML → DOM Tree

  • HTML 会被拆成一个个标签
  • 标签会被转换成节点
  • 最终形成一棵DOM 树

👉 DOM 树描述的是:页面的结构

2️⃣ 解析 CSS → CSSOM Tree

  • 遇到<link>,浏览器会下载 CSS
  • CSS 会被解析成CSSOM 树

⚠️重点来了:

CSS不会阻塞 DOM 的解析
会阻塞页面的渲染

3️⃣ DOM + CSSOM → Render Tree

  • Render Tree 只包含需要显示的节点
  • display: none的元素不会进入渲染树

👉 Render Tree 描述的是:页面真正要画什么

4️⃣ Layout:计算位置和大小

Layout 阶段,浏览器会计算:
每个元素在哪?多大?

5️⃣ Paint:真正开始画了

把布局结果,转换为屏幕上的像素

6️⃣ Composite:图层合成(性能关键)

  • 页面会被拆成多个图层
  • GPU 参与合成
  • transform / opacity / video 等会创建新图层

👉合理使用能提升性能,滥用会吃内存

六、回流 & 重绘:为什么页面会卡?

🔁 回流(Reflow)

一句话:

元素的位置或尺寸发生变化

常见触发场景:

  • 改 width / height
  • 改 position / display
  • DOM 结构变化
  • 读取布局信息(如getComputedStyle

⚠️回流一定会触发重绘

🎨 重绘(Repaint)

一句话:

只改外观,不改布局

例如:

  • color
  • background-color
  • box-shadow
  • opacity

👉 成本比回流小得多

🚀 常见性能优化建议

  • 一次性修改样式(class / cssText)
  • 减少 DOM 操作
  • 避免频繁读取布局信息
  • 合理使用position: absolute / fixed
  • 谨慎创建合成层

七、最后用一句话总结

浏览器渲染的本质就是:
HTML → DOM → CSSOM → Render Tree → Layout → Paint → Composite

如果你真正理解了这条链路:

  • 白屏问题
  • 页面卡顿
  • 动画掉帧
  • script / link 阻塞
  • 回流 & 重绘优化

都会变得非常清晰

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/4 11:30:40

区分 FUD 和现实:MySQL 真的被放弃了吗?

作者&#xff1a;Julia Vural&#xff0c;Percona 工程师。 原文&#xff1a;https://www.percona.com/blog/separating-fud-and-reality-has-mysql-really-been-abandoned/&#xff0c;Jan 22, 2026 爱可生开源社区翻译&#xff0c;本文约 900 字&#xff0c;预计阅读需要 3 分…

作者头像 李华
网站建设 2026/4/23 13:03:14

阿里云渠道商:弹性伸缩的成本和效率如何平衡?

引言&#xff1a;在云计算时代&#xff0c;企业业务流量波动是常态。如何在保障业务稳定性的同时控制成本&#xff0c;成为企业IT管理的核心挑战。阿里云弹性伸缩&#xff08;Auto Scaling&#xff09;服务应运而生&#xff0c;它能够根据业务负载自动调整计算资源。本文将探讨…

作者头像 李华
网站建设 2026/4/17 14:30:41

图文大模型Flamingo从入门到实战:多模态融合原理与应用案例全解析

文章目录 多模态大模型Flamingo实战指南:开启图文交互的智能新纪元 一、技术引力:Flamingo为何是多模态的“破局者”? 二、技术解构:Flamingo的“智能内核” 1. 三大核心模块 2. 技术优势 三、环境搭建:一键配置多模态开发环境 1. 基础依赖安装 2. 下载Flamingo源码与模型…

作者头像 李华
网站建设 2026/3/26 17:12:13

视觉 Transformer 智能进阶指南:多模态 ViT 原理详解 + 实战案例精讲

文章目录 多模态ViT模型从入门到实战:开启视觉Transformer的智能之门 一、技术魅力:ViT为何能颠覆计算机视觉? 二、技术基石:ViT的核心架构解析 1. 三大核心模块 2. 多模态扩展:让ViT“读懂”文本 三、环境搭建:从0开始配置开发环境 1. 基础依赖安装 2. 下载多模态ViT源码…

作者头像 李华
网站建设 2026/4/16 18:25:39

从 0 到 1 玩转 RK3399 + TensorFlow:开发板深度学习环境搭建与实战验证

文章目录 从零开始:RK3399开发板TensorFlow深度学习环境搭建与测试实战 一、初识RK3399与TensorFlow 二、硬件与软件准备 1. 硬件清单 2. 软件资源 三、系统烧录:给RK3399装上Ubuntu AI系统 1. 镜像烧录到SD卡 2. 启动开发板并进入系统 四、TensorFlow环境验证:从Hello Worl…

作者头像 李华
网站建设 2026/4/23 12:31:55

智慧农业真的是农业的未来吗

在科技飞速发展的今天&#xff0c;智慧农业逐渐走入人们的视野&#xff0c;成为农业领域备受关注的话题。那么&#xff0c;智慧农业真的是农业的未来吗&#xff1f;让我们一起来深入探讨。智慧农业与相关技术智慧农业的兴起离不开一系列先进技术的支持。首先是物联网技术&#…

作者头像 李华