在 macOS 中分析网络请求的时长分布

阿雪同学_6849

阿雪同学_6849

2026-06-28

1033人浏览

原创

关键在于用curl -w拆解dns、tcp、tls、ttfb等阶段耗时,配合nslookup和networkquality交叉验证,并通过多次采样观察各阶段波动分布。

在 macos 中分析网络请求的时长分布

要清楚看到 macOS 中网络请求各阶段耗时的分布情况,关键不是只看总时间,而是把一次 HTTP 请求拆解成 DNS 解析、TCP 连接、TLS 握手、首字节响应等环节,再逐项测量并汇总统计。系统自带工具就能完成,不需要装第三方软件。

用 curl -w 精确拆解每个阶段耗时

curl 的 -w 参数能输出完整请求生命周期中多个时间节点,适合单次请求的细粒度分析。

  • 先创建一个格式文件:curl-format.txt,内容为:
time_namelookup: %{time_namelookup}\n time_connect: %{time_connect}\n time_appconnect: %{time_appconnect}\n time_pretransfer: %{time_pretransfer}\n time_starttransfer: %{time_starttransfer}\n time_total: %{time_total}\n
  • 执行命令:curl -w "@curl-format.txt" -o /dev/null -sL https://example.com
  • 输出结果中每个字段单位是秒(小数),例如 time_namelookup: 0.023456 表示 DNS 查询用了约 23ms
  • 重复执行多次(比如 10 次),手动记录或用脚本收集数据,就能看出 DNS 是否波动大、TLS 握手是否不稳定等分布特征

批量采集并观察耗时波动

单次结果容易受缓存、瞬时干扰影响,真正判断“分布”得看一组数据的离散程度。

macOS Notes
macOS Notes

通过 AppleScript 创建、读取、搜索及管理 macOS 备忘录。适用于用户要求记笔记、记录事项、保存想法、创建会议记录等场景。

下载
  • 用 shell 循环快速采集 10 次:for i in {1..10}; do curl -w "@curl-format.txt" -o /dev/null -sL https://example.com; echo "---"; done
  • 重点关注 time_namelookup 和 time_appconnect:如果前者标准差 >10ms,说明本地 DNS 或上游解析不稳定;后者波动大(如从 80ms 跳到 300ms),可能是证书验证慢或服务器 TLS 配置问题
  • 若 time_starttransfer 明显大于 time_pretransfer,说明服务端处理慢,而非网络问题

结合 nslookup 和 networkQuality 定位瓶颈类型

curl 给的是端到端耗时,但无法区分是 DNS、链路还是服务端的问题。需要交叉验证。

  • 测 DNS 延迟分布:time nslookup example.com 8.8.8.8 执行 5 次,看 real 时间是否稳定;再换 1.1.1.1 对比,判断是否本地 DNS 拖累
  • 测底层带宽与延迟:networkQuality -v 查看 RTT 样本和重传率——如果平均 RTT 低但 curl 的 time_connect 高,大概率是本机 TCP 栈或防火墙策略导致连接建立慢
  • 对比不同目标:curl -w ... https://142.250.191.46(Google IP)绕过 DNS,可确认是否域名解析拖慢整体请求

用 Charles 抓包看真实请求序列与并发行为

curl 只测单个请求,实际网页加载是多个请求并发、有依赖关系的。Charles 能展示完整瀑布图,直观反映时长分布逻辑。

  • 开启 Charles 后访问网页,左侧列表显示所有请求,右键某请求 → “Response Times” 可查看 DNS/TLS/Connect/Response 各阶段时间条形图
  • 顶部时间轴显示各请求起止位置,一眼看出哪些请求阻塞了后续资源(如某个 JS 加载慢导致后面 CSS 延后发起)
  • 勾选 “Throttle” 模拟弱网后重测,观察哪些阶段耗时增幅最大——常是 TLS 握手或首字节响应对带宽最敏感

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

macos curl

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

2025.10.13

4785

12

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

2025.11.04

415

21

Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

2025.10.13

4785

12

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

2025.11.04

415

21

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

60

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

20

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

20

10

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

2026.10.16

20

15

Revel框架MVC路由与控制器
Revel框架MVC路由与控制器

本专题聚焦Revel框架MVC核心机制,讲解路由定义、控制器Action、参数绑定、请求响应和反向路由,并结合常见场景梳理接口请求处理流程。

2026.10.16

20

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Miniconda官方安装文档
Miniconda官方安装文档

共0课时 | 0人学习