Linux怎么使用curl命令只输出HTTP请求状态码和网络耗时

阿强大大_7513

阿强大大_7513

2026-11-08

908人浏览

原创

最简命令是curl -s -o /dev/null -w "%{http_code} %{time_total}s" https://example.com,但需加-m 5 -L -f才健壮;-I不适用因HEAD非真实业务请求且无法准确输出耗时。

linux怎么使用curl命令只输出http请求状态码和网络耗时

直接用 curl -s -o /dev/null -w "%{http_code} %{time_total}s" 就能拿到状态码和总耗时,但要注意它默认不走重定向、DNS失败也不报错——这些都会让你误判服务是否真正常。

只输出状态码和总耗时的最小可行命令

最简写法是:

curl -s -o /dev/null -w "%{http_code} %{time_total}s" https://example.com

说明:

  • -s 关闭进度条和错误提示,避免干扰输出
  • -o /dev/null 丢弃响应体,否则可能混入 HTML 或 JSON 内容
  • -w 是关键,它控制额外输出;%{http_code} 和 %{time_total} 是两个最常用变量
  • 注意:这个命令默认不跟随重定向(301/302 会返回原始状态码),如果目标地址有跳转,得加 -L

为什么 curl -I 不适合只取状态码+耗时

curl -I 发的是 HEAD 请求,虽然快,但存在三个实际问题:

  • 某些服务对 HEAD 做了特殊处理(比如直接返回 200 即使后端异常),而 GET 才真实反映业务逻辑
  • -I 无法配合 -w 输出完整耗时字段(%{time_starttransfer} 等在 HEAD 下可能不准)
  • HEAD 请求不触发服务端完整链路(比如鉴权中间件、日志埋点、缓存穿透判断),测出来的时间不具备代表性

必须加的健壮性参数:超时与重定向

线上脚本里裸用 -w 极易被卡住或漏判,建议固定带上:

Linuxdo Application
Linuxdo Application

为 Linux.do 注册撰写高通过率、去 AI 化的中文小作文。进行自适应调查以了解申请人的真实背景,...

下载
  • -m 5:总超时 5 秒(含 DNS、连接、传输),防止 hang 死。注意不是 --connect-timeout,后者只管建连
  • -L:启用重定向跟踪,否则 302 返回就是 302,不是最终的 200
  • -f:遇到非 2xx/3xx 状态码时让命令返回非 0 退出码,方便 shell 判断:if ! curl -sf ...; then echo "fail"; fi

组合起来就是:

curl -sf -m 5 -L -o /dev/null -w "%{http_code} %{time_total}s" https://api.example.com/health

想看更细的阶段耗时?别硬塞进一行输出

虽然 -w 支持 %{time_namelookup}、%{time_connect}、%{time_starttransfer} 等十多个字段,但全打在一行里可读性差,也难解析。建议:

  • 调试时用多行格式,例如:-w "DNS:%{time_namelookup}s\nCONN:%{time_connect}s\nTTFB:%{time_starttransfer}s\nTOTAL:%{time_total}s"
  • 自动化监控场景下,把格式写进文件再引用:curl -w "@format.txt" ...,避免命令行过长出错
  • 注意 %{time_appconnect} 在 HTTP 不走 TLS 时为 0,不要拿它和 %{time_connect} 盲对比

真正容易被忽略的是:curl 的时间字段全部基于本地系统时钟,且不校准 NTP 偏移。如果服务器和本机时间差 >1s,%{time_starttransfer} 可能出现负值——这时得先检查 ntpq -p,而不是怀疑 curl 有问题。

相关专题

更多
curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

2023.06.14

3863

6

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

2023.10.30

915

4

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.09

3943

4

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

2023.11.14

974

3

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

2024.03.12

6786

8

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.08.16

5530

6

Go 语言 HTTP 编程与中间件开发教程合集
Go 语言 HTTP 编程与中间件开发教程合集

全面讲解 Go 语言 HTTP 编程的核心知识,涵盖 net/http 标准库的 Server/Handler/HandlerFunc 体系、DefaultServeMux 路由注册与自定义路由器、Request / ResponseWriter 请求响应处理、中间件(Middleware)链式设计模式与常见中间件(日志/CORS/认证/限流)开发、http.Client 的超时配置与连接池管理、Cookie / Session 处理、

2026.05.08

581

31

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4450

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3733

10

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
尚观shell视频教程
尚观shell视频教程

共8课时 | 1.9万人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

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

共0课时 | 0人学习