适用环境
Windows 的 curl.exe;Linux / macOS 可将 curl.exe 改为 curl
确认你运行的是哪个工具
在部分 Windows PowerShell 版本里,curl 是另一个命令的别名。本文明确写 curl.exe,调用实际的 curl 程序。先查看版本,再对自己的网站或有权测试的地址进行少量请求。
curl.exe --version先看状态码和跳转
curl.exe -I --connect-timeout 10 --max-time 20 http://www.7v.ink/
curl.exe -I --connect-timeout 10 --max-time 20 https://www.7v.ink/-I 请求响应头;301 或 302 通常表示跳转,要结合 Location 判断目的地址。200 表示这次请求成功处理,404 表示目标资源未找到,5xx 则提示服务器端处理出现问题。有些服务不支持 HEAD 请求,若收到 405,应改用下面的 GET 测试。
测一次完整 GET 请求
curl.exe -sS -L -o NUL --connect-timeout 10 --max-time 20 -w "status=%{http_code} dns=%{time_namelookup}s connect=%{time_connect}s tls=%{time_appconnect}s first_byte=%{time_starttransfer}s total=%{time_total}s
" https://www.7v.ink/Linux / macOS 将 NUL 换成 /dev/null。-L 跟随跳转,-o 丢弃正文,-w 打印测量值。命令没有关闭证书校验。不要用 -k 把证书错误隐藏后再宣布网站正常。
这些时间不能直接相加
上面各项多数是从请求开始累计计时,而不是相互独立的阶段耗时。无跳转、无连接复用的简单 HTTPS 请求中,可用 connect 减 dns 粗看建连耗时,用 tls 减 connect 粗看握手耗时。存在跳转、代理或连接复用时,这种差值解释会更复杂,应同时记录测试条件。
记录可比较的结果
同一设备、同一网络、相近时段测三次,并记录地址和是否使用代理。首字节慢可能涉及服务处理、网络往返、代理及跳转,不能直接等同于“服务器 CPU 太慢”。curl 不执行网页脚本,返回快也不代表浏览器已经完成页面渲染。