浏览器一次请求到底经历了什么?
我们每天都会在浏览器地址栏输入网址、点击链接完成一次又一次的页面访问。看似简单的 “输入 - 回车 - 页面加载” 动作背后是一条横跨网络协议、操作系统、浏览器内核、渲染引擎的完整技术链路每一步环环相扣共同决定了页面的加载速度、安全性与最终呈现效果。接下来我们顺着时间线完整拆解一次浏览器请求从发起到页面完全渲染的全过程。一、导航启动从输入框到请求前置检查URL 校验与处理浏览器首先会判断输入内容是合法 URL 还是搜索关键词。如果是 URL会自动补全协议头默认补全http://并解析出协议类型、域名、端口、资源路径、查询参数、哈希值等结构如果是普通文本则调用默认搜索引擎将内容拼接为搜索 URL。多进程调度现代浏览器采用多进程架构一次导航首先由浏览器主进程接收用户输入随后通知网络进程准备发起网络请求同时根据域名判断渲染进程分配同站点复用已有渲染进程跨站点新建独立渲染进程即站点隔离机制保障页面安全。强缓存前置校验在真正发起网络请求前浏览器会优先检查本地强缓存内存缓存 Memory Cache 磁盘缓存 Disk Cache根据请求 URL 和响应头的Cache-Control、Expires字段判断缓存是否过期。如果命中有效强缓存直接返回本地资源无需发起网络请求整个流程在此提前结束。二、DNS 解析把域名翻译成网络可识别的 IP 地址网络通信的基础是 IP 地址而人类易记的域名需要通过 DNS域名系统解析为对应的 IP 地址这是网络请求的 “地址查找” 环节。分层缓存查询机制DNS 解析遵循 “由近及远” 的缓存优先级尽可能减少跨网查询浏览器 DNS 缓存浏览器自身维护的域名 - IP 映射表缓存周期通常为几分钟到几小时系统级缓存操作系统本地缓存与 Hosts 文件配置的静态映射本地 DNS 服务器运营商或企业自建的 Local DNS具备区域级缓存能力根域名服务器全球 13 组根节点指引顶级域名的查询路径顶级域名服务器TLD管理.com、.cn等后缀的域名解析入口权威域名服务器域名最终解析记录的存放节点返回最终 IP 结果两种查询模式DNS 查询分为递归查询与迭代查询客户端到本地 DNS 为递归查询本地 DNS 必须返回最终解析结果本地 DNS 向上到根、顶级域、权威域为迭代查询逐级向下获取指引直到拿到最终 IP。三、连接建立TCP 三次握手与 TLS 安全协商拿到目标 IP 后浏览器需要与服务器建立可靠的传输通道根据协议不同分为 TCP 连接建立以及 HTTPS 场景下的 TLS 加密握手。3.1 TCP 三次握手建立可靠传输通道HTTP 协议底层基于 TCP 传输控制协议三次握手的核心是双向确认双方的发送能力与接收能力均正常客户端向服务器发送 SYN 同步报文进入 SYN_SENT 状态服务器收到 SYN 后回复 SYNACK 确认同步报文进入 SYN_RCVD 状态客户端收到 SYNACK 后回复 ACK 确认报文双方进入 ESTABLISHED 状态连接正式建立采用三次握手而非两次是为了避免历史失效的连接请求到达服务器造成服务器资源空耗同时双向确认收发能力三次是理论上的最少交互次数。3.2 TLS 握手HTTPS 的加密身份验证如果是 HTTPS 请求TCP 连接建立后还会进行 TLS 握手完成加密套件协商、密钥交换与服务器身份验证TLS 1.2 版本需要 2 次往返4 次报文交互完成证书校验、非对称加密交换对称密钥TLS 1.3 优化了握手流程支持 1-RTT 甚至 0-RTT 握手大幅降低加密建立延迟握手完成后后续所有 HTTP 数据都会通过协商好的对称密钥加密传输保障数据的机密性、完整性与防篡改能力。四、请求发送HTTP 报文的传输与流量控制连接建立后浏览器网络进程会构建并发送标准 HTTP 请求报文同时由传输层控制实际数据传输。HTTP 请求报文结构完整的请求报文由三部分组成请求行包含请求方法GET/POST/PUT 等、请求资源路径、HTTP 协议版本请求头键值对形式的元信息包括 Host、User-Agent、Cookie、Accept、Content-Type、缓存标识等请求体POST/PUT 等请求携带的业务数据如表单参数、JSON 报文、文件二进制等不同 HTTP 版本的传输差异HTTP/1.1默认开启长连接Keep-Alive复用 TCP 连接但存在应用层队头阻塞同一域名并发请求数受限制HTTP/2引入二进制分帧与多路复用同一 TCP 连接可并行传输多个请求与响应解决应用层队头阻塞同时支持头部压缩、服务器推送HTTP/3底层基于 UDP 的 QUIC 协议彻底解决 TCP 层队头阻塞连接建立更快弱网环境下传输稳定性更优五、服务器处理与响应返回请求到达服务器后会经过多层业务处理逻辑最终生成响应报文返回浏览器。典型服务端处理链路互联网服务的常规请求链路为CDN 边缘节点静态资源优先命中 CDN 缓存直接返回响应无需回源反向代理层Nginx 等负责负载均衡、请求转发、限流、跨域处理应用服务层后端业务逻辑处理、权限校验、接口计算数据存储层数据库、分布式缓存、对象存储等底层资源HTTP 响应报文结构响应报文与请求对应同样分为三部分响应行协议版本、状态码、状态描述如 200 OK、404 Not Found、500 Internal Server Error响应头包含 Content-Type、Content-Length、Set-Cookie、缓存策略Cache-Control、ETag、Last-Modified、跨域头字段等元信息响应体实际返回的资源内容如 HTML 文本、JSON 数据、图片二进制流等协商缓存判断如果未命中强缓存浏览器会携带If-None-Match对应 ETag 标识、If-Modified-Since对应 Last-Modified 时间发起请求。服务器判断资源未更新时返回 304 状态码浏览器继续使用本地缓存无需传输响应体大幅节省带宽。六、渲染阶段从 HTML 文本到可视化页面浏览器拿到 HTML 响应后导航阶段结束渲染进程接管工作将代码解析为用户可见的页面这一过程也被称为关键渲染路径CRP。6.1 构建 DOM 树与 CSSOM 树DOM 树构建渲染引擎的 HTML 解析器逐行解析 HTML 文本将标签转换为 DOM 节点生成文档对象模型DOM Tree描述页面的结构与内容。解析过程中如果遇到同步script标签会暂停 DOM 解析优先下载并执行 JS 代码因为 JS 可能修改 DOM 结构。CSSOM 树构建同步解析内联、外链的 CSS 样式规则生成 CSS 对象模型CSSOM Tree描述每个节点的样式属性。CSS 解析不会阻塞 DOM 构建但会阻塞 JS 执行与后续渲染步骤。6.2 生成渲染树Render TreeDOM 树与 CSSOM 树结合计算生成渲染树。渲染树只包含可见节点display: none的节点不会出现在渲染树中而visibility: hidden的节点会保留因为其仍占据布局空间。6.3 布局Layout / 重排根据渲染树的节点信息计算每个节点在视口中的精确位置与尺寸这一步称为布局也叫重排。页面首次加载必然触发一次完整重排后续修改元素尺寸、位置、内容时会触发局部或全局重排。6.4 绘制Paint / 重绘布局完成后渲染引擎将每个节点的视觉内容颜色、边框、阴影、文字等绘制到屏幕对应的像素点上这一步称为绘制也叫重绘。重排一定会触发重绘而单纯修改颜色等不影响布局的操作只会触发重绘性能开销远低于重排。6.5 合成Composite浏览器将绘制完成的多个图层按正确层级叠加、合成最终生成屏幕上显示的画面。CSS 的transform、opacity等属性会触发独立合成层跳过重排重绘直接由 GPU 加速合成是前端性能优化的常用手段。6.6 JS 阻塞与优化方案JavaScript 的下载与执行默认会阻塞 DOM 解析因此衍生出多种加载优化方案将 JS 脚本放在页面底部避免阻塞首屏 DOM 构建async异步下载脚本下载完成后立即执行执行时仍会阻塞 DOM多个 async 脚本执行顺序不固定defer异步下载脚本等待 DOM 解析完成后、DOMContentLoaded 事件前执行多个 defer 脚本按加载顺序执行七、收尾阶段连接关闭与缓存持久化页面加载完成后流程并未完全结束还有连接管理与资源缓存的收尾工作。TCP 四次挥手断开连接当所有资源传输完成且连接没有长连接复用需求时会通过四次挥手断开 TCP 连接客户端发送 FIN、服务器回复 ACK、服务器发送 FIN、客户端回复 ACK双方确认后正式关闭连接。长连接复用HTTP/1.1 与 HTTP/2 默认开启 Keep-Alive 长连接一次 TCP 连接可以服务多个 HTTP 请求避免重复握手的性能开销。缓存持久化浏览器将本次请求的可缓存资源写入磁盘缓存更新缓存索引供后续访问直接使用减少重复网络请求。写在最后一次看似简单的浏览器请求实际上串联了应用层、传输层、网络层的网络协议覆盖了浏览器多进程协作、渲染引擎工作原理、分层缓存体系等大量技术细节。前端性能优化的核心思路本质上就是针对这条链路的每个环节做减法减少 DNS 解析耗时、缩短连接建立延迟、降低请求体积、优化渲染路径最终让用户更快、更稳定地看到页面内容。

相关新闻

HTTP/1.1、HTTP/2、HTTP/3 对爬虫到底有什么影响?

HTTP/1.1、HTTP/2、HTTP/3 对爬虫到底有什么影响?

前言 在爬虫开发中,绝大多数开发者的注意力都集中在页面解析、反爬绕过、并发调度上,却常常忽略了最底层的 HTTP 协议版本差异。从 HTTP/1.1 到 HTTP/2,再到基于 QUIC 的 HTTP/3,三次协议迭代不仅改变了 Web 的传输效率&#xff…

2026/10/17 23:06:46 阅读更多 →
【AI问数】大模型选型与微调:AI问数的LLM落地实战

【AI问数】大模型选型与微调:AI问数的LLM落地实战

4 大选型维度 多模型 路由策略 99.97% 可用性 Spider 权威Benchmark AI问数对LLM的选型要求:中文理解强、SQL生成能力突出(Spider/Bird跑分)、上下文窗口足够(16K)、支持私有化部署。鲲溟KM AI采用多模型路由:主模型专用模型备用模型三层配置。 一…

2026/10/18 5:44:22 阅读更多 →
【AI问数】七层架构设计:企业级AI问数平台的技术骨架

【AI问数】七层架构设计:企业级AI问数平台的技术骨架

鲲溟智能 AI智能问数系列 第16篇 | 2026-07-12 7 层架构 16 功能模块 8 数据源 238 语义指标 企业级AI问数平台需要七层架构:数据接入层(8数据源) → 语义层(238指标) → 知识层(四维RAG) → 引擎层(五引擎) → 智能体层(10 Agent) → 应用层(16模块) → 展现…

2026/10/18 5:45:39 阅读更多 →

最新新闻

高德交通态势爬取实战:Python采集道路级速度与拥堵等级数据

高德交通态势爬取实战:Python采集道路级速度与拥堵等级数据

简介:面向交通数据分析、城市规划与GIS应用开发者,这份高德交通态势爬取资源使用脚本调用高德地图接口,获取实时路况、拥堵指数等态势信息,并兼顾请求限速与反爬策略,可直接用于后续交通流分析及ArcGIS空间数据预处理。…

2026/10/18 12:37:31 阅读更多 →
库存表只放数量是事故起点:流水+余额双表设计防超卖

库存表只放数量是事故起点:流水+余额双表设计防超卖

简介:面向仓库管理系统设计与开发人员,提供一套完整的数据库设计资料。内容围绕仓库、物资、库存、采购订单、入库记录与出库记录六大核心实体展开,逐一给出字段定义与外键关联,完整覆盖入库、出库、库存监控和采购等业务场景&…

2026/10/18 12:37:31 阅读更多 →
Linux运维核心命令:文件权限、进程排查与日志分析

Linux运维核心命令:文件权限、进程排查与日志分析

拿一份Linux操作指南来背,是很多刚接触服务器的人最先做的事。我常被问到:Linux到底怎么学?有没有一份命令大全?我一般会反问:你现在最想干的事是什么?架个网站,还是处理一台跑得很慢的机器&…

2026/10/18 12:37:31 阅读更多 →
SpringBoot+Uniapp小文件上传接口实战:MultipartFile与安全存储全解析

SpringBoot+Uniapp小文件上传接口实战:MultipartFile与安全存储全解析

大家在做这类“智能视频推荐小程序”的系列教程时,往往会先把目光集中在 AI 模型调用、推荐算法、视频流处理这些亮点功能上。但实际项目开发中,很多基础能力反而会卡住不少人,文件上传就是其中一个很典型的环节。无论用户换头像、上传视频封…

2026/10/18 12:37:31 阅读更多 →
VxWorks在ARM9上的BSP移植:从启动流程到常见坑

VxWorks在ARM9上的BSP移植:从启动流程到常见坑

简介:面向嵌入式开发者的VxWorks基于ARM9(S3C2410X)的板级支持包(BSP)资源,适用于工业控制、航空电子等嵌入式系统开发者,重点解决硬件平台启动、驱动适配与内核移植过程中的关键问题。压缩包共…

2026/10/18 12:37:31 阅读更多 →
三机九节点潮流计算MATLAB实战:从Y矩阵到牛顿-拉夫逊迭代

三机九节点潮流计算MATLAB实战:从Y矩阵到牛顿-拉夫逊迭代

简介:面向电力系统学习与研究,这份MATLAB程序实现了经典IEEE三机九节点系统的潮流计算,适合电气专业学生、研究生以及电网分析工程师用作教学演示、课程作业或科研算例。压缩包体积仅2KB,共含3个文件:2个txt数据文件分…

2026/10/18 12:36:30 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →