贝博恩创新科技网

Chrome Network教程,如何高效查看网络请求?

Chrome DevTools Network 面板终极教程

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

Chrome Network教程,如何高效查看网络请求?-图1
(图片来源网络,侵删)

第一部分:初识 Network 面板

打开 Chrome 浏览器,按 F12Ctrl+Shift+I (Windows/Linux) / Cmd+Opt+I (Mac) 打开 DevTools,然后切换到 Network 标签页。

一个典型的 Network 面板包含以下几个主要区域:

  1. 工具栏:位于面板顶部,包含各种筛选、录制和查看选项。
  2. 请求列表:中间的主体部分,按时间顺序列出了所有网络请求。
  3. 概览图:位于请求列表上方,用彩色条形图直观展示了页面加载各个阶段的时间消耗。
  4. 摘要:位于面板底部,显示了所有请求的汇总信息,如总请求数、总数据传输量、加载时间等。

第二部分:核心功能详解

请求列表 - 信息的宝库

这是 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)。

请求详情面板

点击列表中的任意请求,下方会展开详情面板,包含以下选项卡:

Chrome Network教程,如何高效查看网络请求?-图2
(图片来源网络,侵删)
  • Headers (请求头):

    • General: 通用信息,如请求 URL、请求方法、状态码、响应 IP 等。
    • Response Headers: 服务器返回的响应头,包含 Content-Type类型)、Cache-Control(缓存策略)、Content-Length 等关键信息。
    • Request Headers: 浏览器发送的请求头,如 User-AgentCookieAccept 等。
  • 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):

    Chrome Network教程,如何高效查看网络请求?-图3
    (图片来源网络,侵删)
    • 如果请求来自 <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: 其他类型的请求。
  • 大写 X: 点击它可以清空所有当前记录的请求。

  • 导出 HAR (HTTP Archive): 可以将当前的 Network 日志导出为一个 .har 文件,这个文件包含了所有请求的完整信息,可以分享给同事或在其他工具中进行分析。


第三部分:实际应用场景与实战

调试 API 请求

假设你正在开发一个前端应用,需要调用一个 /api/users 接口获取用户列表,但数据显示不正确。

  1. 打开 Network 面板,确保 Preserve log 已勾选。
  2. 在你的应用中触发调用 API 的操作(点击一个“加载用户”按钮)。
  3. 在 Network 面板中,使用 Filter 输入 api,或者直接点击 XHR 按钮,快速定位到 API 请求。
  4. 点击该请求,查看其 HeadersResponse
    • 检查状态码: 如果是 200 OK,说明服务器成功响应,如果是 404 Not Found,检查 URL 是否错误,如果是 500 Internal Server Error,说明服务器出错了。
    • 检查 Response: 在 Response 标签页中,查看服务器返回的数据是否符合你的预期,数据格式是否正确?字段是否缺失?
    • 检查请求参数: 在 Headers -> Query String Parameters (如果是 GET 请求) 或 Request Payload (如果是 POST 请求) 中,确认你发送给服务器的参数是否正确。
    • 检查请求头: 确认 Content-Type, Authorization (Token) 等关键请求头是否设置正确。

性能优化 - 查找加载瓶颈

你的网站首页加载很慢,如何找出问题所在?

  1. 确保勾选了 "Preserve log"
  2. 刷新页面,让 Network 面板记录完整的加载过程。
  3. 查看概览图: 彩色条形图可以让你直观地看到哪些资源加载耗时最长,一个长条代表一个资源,条越长,耗时越久。
  4. 分析请求列表:
    • 排序: 点击 Time 列的标题,可以按耗时从高到低排序,排在最顶部的就是最慢的请求。
    • 分析 Timings: 点击一个耗时很长的请求,切换到 Timing 标签页。
      • Wait (TTFB) 很长,说明服务器响应慢,需要优化后端代码或数据库查询。
      • DNSConnect 很长,特别是首次访问时,可以考虑使用 DNS 预解析或减少 HTTP 请求,或使用 CDN 加速。
      • Receive 很长,说明响应数据量太大,可以考虑压缩数据(如 Gzip)或分页加载。
      • StalledQueued 时间很长,说明浏览器在同一时间发起的请求数太多(如浏览器对同一域名的并发连接数有限制),可以考虑合并文件或使用 CDN 分散域名。
  5. 利用 "Slow 3G" 模式: 切换到慢速网络,模拟真实用户场景,更容易发现加载过程中的问题。

分析缓存策略

你修改了一个 CSS 文件,但刷新页面后样式没有更新,怀疑是缓存问题。

  1. 不勾选 "Disable cache",刷新页面,找到该 CSS 文件,查看其 Response Headers
    • 检查 Cache-Control 的值,max-age=3600 表示缓存 1 小时。
    • 检查 Last-ModifiedETag,了解缓存验证机制。
  2. 勾选 "Disable cache",再次刷新页面,再查看该 CSS 文件。
    • 如果这次文件更新了,就证实了是缓存导致的问题。
    • 你可以与后端开发者沟通,调整缓存策略(给文件名加上哈希值,如 style.a1b2c3d4.css,这样文件内容更新后,URL 也会变,浏览器会重新请求)。

第四部分:高级技巧

  • 模拟慢速网络: 除了使用工具栏的 "Online" 下拉菜单,你还可以在 DevTools 的 Throttling 设置中进行更精细的控制。
  • 覆盖网络请求: 在请求的 Headers 详情中,你可以右键点击某个请求头(如 User-Agent),选择 "Edit and override",临时修改它来测试不同设备或浏览器的行为。
  • 保存和加载工作区: 你可以将 Network 面板的布局和状态保存为工作区,方便后续恢复。

Chrome DevTools Network 面板功能强大,是每一位 Web 开发者必须掌握的工具,熟练掌握它,你将能:

  • 快速定位 前后端交互问题。
  • 精准分析 网站性能瓶颈。
  • 深入理解 浏览器加载和缓存机制。

从现在开始,每次遇到与网络相关的问题,第一反应就应该是打开 Network 面板,它总能给你最直观的答案,多加练习,你很快就能成为使用它的高手!

分享:
扫描分享到社交APP
上一篇
下一篇