从输入URL到浏览器显示页面发生了什么?

本文详细阐述了从输入URL开始,经过DNS解析、HTTP请求、TCP三次握手、服务器响应直至浏览器渲染HTML及嵌套资源的全过程,深入解析网络通信与浏览器渲染机制。

从输入URL到浏览器显示页面发生了什么?
1.输入地址
2.dns解析域名找到对应的ip地址
3.客户端发送http请求
4.通过tcp协议传输报文 三次握手
5.通过ip协议传输给服务器
6.服务器接受数据并处理请求
7.返回相应的html文件
8.渲染到浏览器
9.渲染过程中遇到嵌入在 HTML 中的资源(如图片、音频、视频、CSS、JS等等),需要再次发送http请求

浏览器输入 URL页面渲染完成的过程是一个复杂且多阶段的流程,涉及多个系统组件的协作。以下是详细的过程解析: ### 网络请求阶段 当用户在浏览器输入 URL 后,浏览器会向 DNS 服务器发起请求,以解析 URL 中的域名,获取对应的 IP 地址。这一过程通常称为 DNS 解析。解析完成后,浏览器会根据获取的 IP 地址与服务器建立 TCP 连接。TCP 连接建立后,浏览器通过 HTTP 或 HTTPS 协议向服务器发送请求,以获取网页的内容。服务器接收到请求后,会返回相应的 HTML 文件以及可能附带的其他资源,如 CSS、JavaScript 文件和图片等。在这一阶段,TCP 连接可能会在请求完成后被关闭或保持打开状态以供后续请求使用[^2]。 ### 解析与渲染阶段 一旦浏览器接收到服务器返回的 HTML 内容,它会开始解析 HTML 文件并构建 DOM 树。DOM 树是 HTML 文档的内存表示形式,它将文档中的每个元素转换为一个节点,以便浏览器可以理解和操作这些节点。与此同时,浏览器还会解析 CSS 样式表,将其转换为浏览器可以理解的 `styleSheets`,并计算生成 CSSOM(CSS Object Model)树。CSSOM 树描述了文档中每个元素的样式信息[^1]。 ### 布局与绘制阶段 DOM 树和 CSSOM 树结合后,浏览器会创建布局树(也称为渲染树),用于确定每个节点在屏幕上的位置和大小。布局树的创建过程中,浏览器会计算每个节点的布局信息,例如宽度、高度和位置。接下来,浏览器会对布局树进行分层,并生成图层树。图层树的生成是为了优化渲染性能,尤其是在处理复杂动画或滚动效果时。每个图层会被进一步处理,生成绘制列表,这些列表描述了图层上需要绘制的内容。绘制列表随后被提交到合成线程,合成线程负责将图层分割为图块,并在光栅化线程池中将图块转换为位图。最后,合成线程发送制图块命令 `DrawQuad` 给浏览器进程,浏览器进程根据 `DrawQuad` 消息生成页面,并显示显示器上[^1]。 ### 脚本与资源加载的影响 在解析 HTML 的过程中,如果遇到外部资源(如 JavaScript 或 CSS 文件),浏览器会暂停 HTML 的解析,直到这些资源被加载和执行完毕。这是因为 JavaScript 可能会修改 DOM 结构,而 CSS 则会影响页面的渲染样式。因此,浏览器会先加载并执行 JavaScript 脚本,然后再继续解析 HTML 和构建 DOM 树。同样,CSS 资源的加载也会阻塞页面的渲染,直到样式信息计算完成[^3]。 ### 示例代码 以下是一个简单的 HTML 页面示例,展示了如何引入外部 CSS 和 JavaScript 文件: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Page Title</title> <link rel="stylesheet" href="styles.css"> </head> <body> <h1>Hello, World!</h1> <script src="script.js"></script> </body> </html> ``` 在这个例子中,浏览器会先加载 `styles.css` 文件,然后解析 HTML 内容,构建 DOM 树,接着加载并执行 `script.js` 文件中的 JavaScript 代码,最后渲染页面。 ###
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值