采用curl -w测试接口或域名访问速度

本文介绍curl命令中-w参数的使用,展示如何测量DNS解析、TCP连接、数据传输等阶段的时间,以及示例分析输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

命令:

curl -o /dev/null  -H "Cache-Control: no-cache" -s -w time_namelookup:"\t"%{time_namelookup}"\n"time_connect:"\t\t"%{time_connect}"\n"time_pretransfer:"\t"%{time_pretransfer}"\n"time_starttransfer:"\t"%{time_starttransfer}"\n"time_total:"\t\t"%{time_total}"\n"time_redirect:"\t\t"%{time_redirect}"\n" https://www.baidu.com

执行结果:

time_namelookup:	0.004
time_connect:		0.008
time_pretransfer:	0.119
time_starttransfer:	0.143
time_total:		0.143
time_redirect:		0.000

详细说明:

Cache-Control: no-cache     标头,让服务器不使用缓存来满足请求始终提供最新的数据
time_namelookup:从开始计算,域名解析完成的耗时
time_connect:从开始计算,TCP建立完成(握手)的耗时
time_pretransfer:从开始计算,准备开始传输数据的耗时
time_starttransfer:从开始计算,开始传输数据的耗时(libcurl接收到第一个字节)
time_total:总的耗时
time_redirect:整个过程重定向的耗时,如果整个过程没有重定向,这个时间为0

 curl的-w参数说明:

curl的-w参数用于在一次完整且成功的操作后输出指定格式的内容到标准输出。输出格式由普通字符串和任意数量的变量组成,输出变量需要按照%{variable_name}的格式。

例如,仅获取http状态码,可以这样做:

复制代码

curl -w %{http_code} www.baidu.com -o /dev/null -s

获取整个请求的时间,可以这样做:

复制代码

curl -w %{time_total} www.baidu.com -o /dev/null -s

获取域名解析时间,可以这样做:

复制代码

curl -w %{time_namelookup} www.baidu.com -o /dev/null -s

获取TCP连接耗时,可以这样做:

复制代码

curl -w %{time_connect} www.baidu.com -o /dev/null -s

此外,还有其他一些变量可以使用,例如url_effective、response_code等。更多变量可以在curl的官方文档中查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气的梧桐述

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值