只需一条curl命令即可快速确认网页可访问性并精确测量DNS、TCP、TLS、首字节及总耗时:用-w输出各阶段时间,配合-s -o /dev/null静默执行,例如curl -s -o /dev/null -w "DNS:%{time_namelookup}s → TCP:%{time_connect}s → TLS:%{time_appconnect}s → 首字节:%{time_starttransfer}s → 总耗时:%{time_total}s\n" https://example.com。

在Mac终端里快速确认网页是否可访问、接口是否响应正常,同时精确看到DNS解析、连接建立、首字节返回等各阶段耗时,只需一条curl命令就能完成。
直接获取HTTP状态码
输入命令:curl -s -o /dev/null -w "%{http_code}" https://example.com
这一步操作起来很简单,直接回车就能看到纯数字状态码,比如200或404。-s让输出静默,-o /dev/null丢弃响应体,-w只输出占位符值——【必须同时使用-s或-o,否则-w不会生效】。
如果目标地址有重定向(比如301跳转),加-L参数自动跟随:curl -L -s -o /dev/null -w "%{http_code}" https://example.com。
分阶段测量接口延迟
要定位慢在哪一环,不能只看总耗时。DNS慢?TCP连不上?TLS握手卡住?用-w输出关键时间变量:
运行命令:curl -s -o /dev/null -w "DNS:%{time_namelookup}s → TCP:%{time_connect}s → TLS:%{time_appconnect}s → 首字节:%{time_starttransfer}s → 总耗时:%{time_total}s\n" https://example.com
DNS时间超过0.5秒说明本地DNS配置或上游解析服务有问题;TCP连接时间远大于DNS时间,可能网络路由异常或目标端口被拦截;【time_appconnect为0且协议是HTTPS,说明未走TLS,可能是HTTP误写成HTTPS】;首字节时间减去TCP连接时间,就是服务器处理+网络传输的叠加延迟。
一次性查看完整请求链路信息
方法一:用-v参数看全过程
执行curl -v https://example.com,终端会逐行打印DNS查询、TCP握手、TLS协商、HTTP请求头、响应头、响应体。滚动到最上方找* Connected to确认是否连上,往下找确认状态码。
方法二:精简版verbose,只保留关键行
运行curl -s -I https://example.com 2>&1 | head -n 10,-I发HEAD请求,2>&1把错误流也导入标准输出,head只取前10行——足够看到HTTP版本、状态码、Server头和重定向Location。
方法三:带超时控制的健壮检测
第一步:curl --connect-timeout 5 --max-time 15 -s -o /dev/null -w "code:%{http_code} total:%{time_total}s\n" https://example.com
第二步:观察输出是否含code:000——这代表连接完全失败,不是超时,而是DNS失败或目标不可达;
第三步:若total值接近15,说明卡在响应体传输阶段,需检查服务端是否阻塞或带宽不足。











