




























原文:https://ichochy.com/posts/shell/20241001.html
curl 是一个命令行工具,用于在网络上发送和接收数据。它支持多种协议,包括 HTTP、HTTPS、FTP、SFTP 等,广泛应用于 Web 开发、API 测试和网络调试。
支持多种变量,可以用来获取详细的请求信息。
以下是一些常用的变量:
时间相关:
传输相关:
状态和信息:
连接信息:
其他:
curl -o /dev/null -s -w "HTTP Status: %{http_code}\nTotal Time: %{time_total} seconds\n" https://ichochy.com
完整脚本:speedtest.sh
#! /bin/bash
# 网络访问测试
# 通过CURL命令测试网络访问时间
# author: iChochy
# site: https://ichochy.com
read -p "测速URL(可为空):" url
if [ -z $url ]
then
url="https://ichochy.com"
fi
echo "测速URL:$url"
echo "开始测速…………"
curl -o /dev/null -s -w time_namelookup:"\t"%{time_namelookup}"\n"time_connect:"\t\t"%{time_connect}"\n"time_appconnect:"\t"%{time_appconnect}"\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" $url
echo "循环测速…………"
i=1
while (($i<=5))
do
printf "第"$i"次:"
curl -o /dev/null -s -w time_connect:"\t"%{time_connect}"\t"time_total:"\t"%{time_total}"\n" $url
let i++
done
echo "####################################"
echo "字段说明:"
echo "time_namelookup \t# 从开始计算,域名解析完成的耗时"
echo "time_connect \t\t# 从开始计算,TCP建立完成的耗时"
echo "time_appconnect \t# 从开始计算,应用层握手完成的耗时"
echo "time_pretransfer \t# 从开始计算,准备传输数据的耗时"
echo "time_starttransfer \t# 从开始计算,开始接收数据的耗时"
echo "time_total \t\t# 从开始记算,完成接收数据的耗时"
echo "time_redirect \t\t# 重定向的耗时,没有重定向时间为0"
speedtest.shsh ./speediest.shmleo@Mac[mleo]: sh ./speediest.sh
测速URL(可为空):
测速URL:https://ichochy.com
开始测速…………
time_namelookup: 0.000695
time_connect: 0.001227
time_appconnect: 0.614623
time_pretransfer: 0.614876
time_starttransfer: 0.968854
time_total: 0.970281
time_redirect: 0.000000
循环测速…………
第1次:time_connect: 0.000799 time_total: 1.136176
第2次:time_connect: 0.001501 time_total: 0.806167
第3次:time_connect: 0.001580 time_total: 0.710288
第4次:time_connect: 0.001136 time_total: 0.612873
第5次:time_connect: 0.000909 time_total: 0.768882
####################################
字段说明:
time_namelookup # 从开始计算,域名解析完成的耗时
time_connect # 从开始计算,TCP建立完成的耗时
time_appconnect # 从开始计算,应用层握手完成的耗时
time_pretransfer # 从开始计算,准备传输数据的耗时
time_starttransfer # 从开始计算,开始接收数据的耗时
time_total # 从开始记算,完成接收数据的耗时
time_redirect # 重定向的耗时,没有重定向时间为0
curl 是一个强大的命令行工具,用于在网络上发送和接收数据,支持多种协议如 HTTP、HTTPS、FTP 等。
它允许用户灵活地执行各种请求,包括 GET、POST 等,并能够自定义请求头和数据。
curl 适合进行 API 测试、文件传输和网络调试,支持身份验证和 SSL/TLS 加密,适用于多种操作系统。
通过简单的命令,用户可以轻松与服务器进行交互并获取详细的请求和响应信息。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。