LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

🔥 在浏览器地址栏输入 URL 后,页面是怎么一步步显示出来的?

zhenglin
2026年2月4日 15:36 本文热度 60

这是一个接触前端 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)

    常见关系👇


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

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

    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 阻塞
    • 回流 & 重绘优化

    都会变得非常清晰


    参考文章:原文链接


    该文章在 2026/2/4 15:37:26 编辑过
    关键字查询
    相关文章
    正在查询...
    点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
    点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
    点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
    点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
    Copyright 2010-2026 ClickSun All Rights Reserved