Chrome DevTools Network 面板终极教程
Network 面板是前端开发者和测试工程师的“透视眼”,它能让你清晰地看到浏览器与服务器之间的所有通信,无论是调试性能问题、分析 API 请求,还是优化加载速度,它都是必不可少的工具。

第一部分:初识 Network 面板
打开 Chrome 浏览器,按 F12 或 Ctrl+Shift+I (Windows/Linux) / Cmd+Opt+I (Mac) 打开 DevTools,然后切换到 Network 标签页。
一个典型的 Network 面板包含以下几个主要区域:
- 工具栏:位于面板顶部,包含各种筛选、录制和查看选项。
- 请求列表:中间的主体部分,按时间顺序列出了所有网络请求。
- 概览图:位于请求列表上方,用彩色条形图直观展示了页面加载各个阶段的时间消耗。
- 摘要:位于面板底部,显示了所有请求的汇总信息,如总请求数、总数据传输量、加载时间等。
第二部分:核心功能详解
请求列表 - 信息的宝库
这是 Network 面板的核心,每一行代表一个网络请求,点击任意一行,可以在下方查看该请求的详细信息。
列表列信息
- Name / URL: 请求的名称或完整的 URL。
- Status: HTTP 状态码。
2xx(如 200): 成功。3xx(如 301, 302): 重定向。4xx(如 404, 403): 客户端错误。5xx(如 500): 服务器错误。
- Type: 请求的资源类型。
Document: HTML 主文档。Script: JavaScript 文件。Stylesheet: CSS 文件。XHR/Fetch: AJAX 或 Fetch API 请求。Font: 字体文件。Image: 图片。- 等等...
- Initiator: 请求的发起者。
Parser: HTML 解析器在解析文档时发起的请求(如<img src="...">)。XHR: 由XMLHttpRequest对象发起。Fetch: 由fetch()API 发起。Script: JavaScript 代码执行过程中发起的请求。
- Size: 请求响应的总大小(包括响应头和响应体)。
- Time: 从请求发起接收到最后一个字节的总耗时。
- Waterfall: 一个瀑布流图,直观展示了请求的各个阶段耗时(见下文 Timings)。
请求详情面板
点击列表中的任意请求,下方会展开详情面板,包含以下选项卡:

-
Headers (请求头):
- General: 通用信息,如请求 URL、请求方法、状态码、响应 IP 等。
- Response Headers: 服务器返回的响应头,包含
Content-Type类型)、Cache-Control(缓存策略)、Content-Length等关键信息。 - Request Headers: 浏览器发送的请求头,如
User-Agent、Cookie、Accept等。
-
Preview / Response (响应内容):
- Preview: 以易于阅读的格式(如 JSON、图片预览)展示响应体。
- Response: 原始的响应体内容,对于 API 调试,这里是查看服务器返回数据的主要位置。
-
Timing (性能分析 - 极其重要):
- 这里是分析性能瓶颈的关键,它将一个请求的完整生命周期分解为多个阶段:
- Queued (排队): 请求因被其他请求阻塞而排队等待的时间。
- Stalled (停滞): 请求从发起到可以开始发送之间的等待时间(如 DNS 查询、TCP 连接、请求被阻塞等)。
- DNS (域名解析): 将域名解析为 IP 地址的时间。
- Connect (TCP 连接): 与服务器建立 TCP 连接的时间。
- SSL/TLS (安全连接): 与服务器建立安全连接(TLS 握手)的时间。
- Send (发送请求): 从浏览器发送请求头到服务器的时间。
- Wait (等待响应 - TTFB): Time to First Byte,从请求发送完成到收到服务器第一个字节响应的时间,这个指标是衡量服务器响应速度的关键。
- Receive (接收响应): 从服务器接收响应数据的时间。
- 瀑布流图 在列表的
Waterfall列中可视化了这些阶段,让你一眼就能看出哪个环节最耗时。
- 这里是分析性能瓶颈的关键,它将一个请求的完整生命周期分解为多个阶段:
-
Frames (关联的 Frame):
(图片来源网络,侵删)- 如果请求来自
<iframe>,这里会显示该请求所属的 Frame 信息。
- 如果请求来自
-
Cookies (Cookie):
显示请求发送或接收到的 Cookie 详细信息。
-
Security (安全):
显示与安全相关的信息,如 TLS 连接详情、证书信息等。
工具栏 - 精准控制与筛选
工具栏是你控制 Network 面板和筛选信息的利器。
-
Preserve log (保留日志): 默认情况下,刷新页面后日志会被清空,勾选此选项,日志会被保留,方便你对比刷新前后的请求变化。
-
Disable cache (禁用缓存): 在调试时非常有用,勾选后,浏览器将不会从缓存中加载任何资源,强制向服务器请求最新版本,这对于排查缓存问题(如 CSS/JS 更新后未生效)至关重要。
-
Online (网络类型): 模拟不同的网络环境,如
Fast 3G,Slow 3G,Offline,这对于测试网站在不同网速下的表现非常有帮助。 -
过滤器: 强大的搜索和筛选工具。
- Filter input (输入框): 你可以输入关键词来筛选请求,如
jpg只显示图片,api只显示 API 请求。 - Filter buttons (筛选按钮):
- All: 显示所有请求。
- XHR/Fetch: 只显示 AJAX 请求,这是调试 API 最常用的筛选方式。
- JS: 只显示 JavaScript 文件。
- CSS: 只显示 CSS 文件。
- Img: 只显示图片。
- Media: 只显示媒体文件(视频、音频)。
- Font: 只显示字体文件。
- Doc: 只显示 HTML 文档。
- WS/WSS: 只显示 WebSocket 连接。
- Other: 其他类型的请求。
- Filter input (输入框): 你可以输入关键词来筛选请求,如
-
大写 X: 点击它可以清空所有当前记录的请求。
-
导出 HAR (HTTP Archive): 可以将当前的 Network 日志导出为一个
.har文件,这个文件包含了所有请求的完整信息,可以分享给同事或在其他工具中进行分析。
第三部分:实际应用场景与实战
调试 API 请求
假设你正在开发一个前端应用,需要调用一个 /api/users 接口获取用户列表,但数据显示不正确。
- 打开 Network 面板,确保 Preserve log 已勾选。
- 在你的应用中触发调用 API 的操作(点击一个“加载用户”按钮)。
- 在 Network 面板中,使用 Filter 输入
api,或者直接点击 XHR 按钮,快速定位到 API 请求。 - 点击该请求,查看其 Headers 和 Response。
- 检查状态码: 如果是
200 OK,说明服务器成功响应,如果是404 Not Found,检查 URL 是否错误,如果是500 Internal Server Error,说明服务器出错了。 - 检查 Response: 在 Response 标签页中,查看服务器返回的数据是否符合你的预期,数据格式是否正确?字段是否缺失?
- 检查请求参数: 在 Headers -> Query String Parameters (如果是 GET 请求) 或 Request Payload (如果是 POST 请求) 中,确认你发送给服务器的参数是否正确。
- 检查请求头: 确认
Content-Type,Authorization(Token) 等关键请求头是否设置正确。
- 检查状态码: 如果是
性能优化 - 查找加载瓶颈
你的网站首页加载很慢,如何找出问题所在?
- 确保勾选了 "Preserve log"。
- 刷新页面,让 Network 面板记录完整的加载过程。
- 查看概览图: 彩色条形图可以让你直观地看到哪些资源加载耗时最长,一个长条代表一个资源,条越长,耗时越久。
- 分析请求列表:
- 排序: 点击
Time列的标题,可以按耗时从高到低排序,排在最顶部的就是最慢的请求。 - 分析 Timings: 点击一个耗时很长的请求,切换到 Timing 标签页。
Wait (TTFB)很长,说明服务器响应慢,需要优化后端代码或数据库查询。DNS或Connect很长,特别是首次访问时,可以考虑使用 DNS 预解析或减少 HTTP 请求,或使用 CDN 加速。Receive很长,说明响应数据量太大,可以考虑压缩数据(如 Gzip)或分页加载。Stalled或Queued时间很长,说明浏览器在同一时间发起的请求数太多(如浏览器对同一域名的并发连接数有限制),可以考虑合并文件或使用 CDN 分散域名。
- 排序: 点击
- 利用 "Slow 3G" 模式: 切换到慢速网络,模拟真实用户场景,更容易发现加载过程中的问题。
分析缓存策略
你修改了一个 CSS 文件,但刷新页面后样式没有更新,怀疑是缓存问题。
- 不勾选 "Disable cache",刷新页面,找到该 CSS 文件,查看其 Response Headers。
- 检查
Cache-Control的值,max-age=3600表示缓存 1 小时。 - 检查
Last-Modified或ETag,了解缓存验证机制。
- 检查
- 勾选 "Disable cache",再次刷新页面,再查看该 CSS 文件。
- 如果这次文件更新了,就证实了是缓存导致的问题。
- 你可以与后端开发者沟通,调整缓存策略(给文件名加上哈希值,如
style.a1b2c3d4.css,这样文件内容更新后,URL 也会变,浏览器会重新请求)。
第四部分:高级技巧
- 模拟慢速网络: 除了使用工具栏的 "Online" 下拉菜单,你还可以在 DevTools 的 Throttling 设置中进行更精细的控制。
- 覆盖网络请求: 在请求的 Headers 详情中,你可以右键点击某个请求头(如
User-Agent),选择 "Edit and override",临时修改它来测试不同设备或浏览器的行为。 - 保存和加载工作区: 你可以将 Network 面板的布局和状态保存为工作区,方便后续恢复。
Chrome DevTools Network 面板功能强大,是每一位 Web 开发者必须掌握的工具,熟练掌握它,你将能:
- 快速定位 前后端交互问题。
- 精准分析 网站性能瓶颈。
- 深入理解 浏览器加载和缓存机制。
从现在开始,每次遇到与网络相关的问题,第一反应就应该是打开 Network 面板,它总能给你最直观的答案,多加练习,你很快就能成为使用它的高手!
