news 2026/4/17 23:03:40

从输入URL到页面渲染完成的全过程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从输入URL到页面渲染完成的全过程

概述

当用户在浏览器地址栏输入一个URL,按下回车键后,浏览器需要将域名解析为服务器的IP地址,如果缓存中有这个域名对应的IP地址,则直接获取,否则会向域名服务器发起DNS查询请求来获得Ip地址。拿到IP地址后,浏览器会与目标服务器通过三次握手建立TCP连接。如果URL时HTTPS,则需要额外进行TLS握手,确保传输的安全性。成功建立连接后,客户端向服务器发送HTTP请求,服务端接到请求后,开始处理请求,并返回响应。然后浏览器开始渲染页面,渲染页面的过程包括解析HTML,构建DOM树、解析CSS文件和style标签,构建CSSOM树、将DOM树和CSSOM树合并成渲染树,渲染树中只包含可见元素、确定好每个元素的位置和大小后,根据盒模型布局,绘制每个元素(文本、图片、背景等),渲染层分为多个图层,每个图层独立绘制后组成完整页面,之后进行首屏加载以及页面的可交互事件。在页面渲染时,浏览器遇到script标签会暂停解析和构建DOM,直到脚本加载完毕,但async和defer属性可以异步加载,不会阻塞DOM解析。页面加载完成后,浏览器会继续处理用户的操作,比如点击事件、滚动事件,并根据事件绑定的处理函数,执行相应的JS代码。至此,就完成了从输入URL到页面渲染完成的全过程。

1.输入URL

用户在浏览器地址栏输入一个URL,按下回车键

2.DNS解析

浏览器需要将域名解析为服务器的IP地址,以建立连接
- 检查本地/浏览器缓存,如果有该域名的IP地址,则直接获取,否则会向本地域名服务器发起DNS查询请求,通过递归查询的方式获得IP地址
- 客户端使用递归查询,本地DNS服务器使用迭代查询来获取最终的DNS纪录。在实际的网络环境中,递归查询和迭代查询会结合使用,以实现高效的域名解析

3.TCP连接(三次握手)

浏览器与目标服务器通过三次握手建立TCP连接
1.SYN:浏览器发送SYN(同步序列号)请求包,要求服务器建立连接 【浏览器对服务器说:你好,请求连接】
2.SYN

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

别再花钱买会议软件了!手把手教你用Docker在Ubuntu 24上免费搭建Jitsi Meet(含SSL证书配置和品牌定制)

私有化部署Jitsi Meet:从零搭建企业级视频会议系统的完整指南 在远程协作成为主流的今天,视频会议系统已成为企业、教育机构和团队协作的标配。然而,商业解决方案如Zoom、腾讯会议等往往存在订阅费用高昂、功能限制和数据隐私等问题。本文将带…

作者头像 李华
网站建设 2026/4/17 22:55:37

035、FreeRTOS与实时性性能测试(最坏执行时间分析)

035、FreeRTOS与实时性性能测试(最坏执行时间分析) 一、从一次深夜报警说起 上个月在工厂现场调试一台基于STM32的物料分拣设备,凌晨三点突然收到报警:传送带卡料,电机堵转。查看日志发现,任务响应时间在某个时刻从平时的2ms飙升至200ms——直接导致PID控制环失控。当时…

作者头像 李华
网站建设 2026/4/17 22:52:40

PHP怎么用array_unique去重数组元素【方法】.txt

Go生成HMAC-SHA256签名需严格按字典序拼接参数、URL编码值、密钥转[]byte;验证失败多因原始数据不一致,如时间戳偏差、头字段名错误、double-encode等。Go 语言里怎么生成标准 HMAC-SHA256 签名签名本质是用密钥对请求参数做确定性哈希,Go 自…

作者头像 李华
网站建设 2026/4/17 22:51:57

模型服务化:TorchServe 与 Triton Inference Server 深度实践

核心观点:凌晨两点,屏幕上的日志还在疯狂滚动。第 37 次尝试启动 TorchServe 服务,依然卡在"Loading model…"然后超时。同事发来的微信还在闪烁:"客户明天要看演示,模型部署必须搞定。"这场景太熟悉了——模型在本地跑得好好的,一到生产环境就各种水…

作者头像 李华