Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何使用cURL获得请求和响应时间?

如何使用cURL获得请求和响应时间?

作者头像
有态度的马甲
发布于 2021-12-15 12:20:43
发布于 2021-12-15 12:20:43
4.8K00
代码可运行
举报
文章被收录于专栏:精益码农精益码农
运行总次数:0
代码可运行

hello,老伙计们,又有半个多月没见了,今天给大家分享一个干货编程小技巧,上至架构师、下至开发者、运维男、QA, 得此利器,事半功倍。

cURL在我的眼里,就是一个httpClient手办,老伙计们知道怎么获得cURL请求的具体耗时吗? 🙃

cURL支持格式化输出请求的详细信息(请参阅cURL手册页的-w、–write out<format>获取更多信息)。

如题,我们只关注如何知晓cURL请求的时间细节, 下面时间以s为单位。

1. 创建一个文本文件curl-format.txt, 粘贴下面内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   time_namelookup:  %{time_namelookup}s\n
        time_connect:  %{time_connect}s\n
     time_appconnect:  %{time_appconnect}s\n
    time_pretransfer:  %{time_pretransfer}s\n
       time_redirect:  %{time_redirect}s\n
  time_starttransfer:  %{time_starttransfer}s\n
                     ----------\n
          time_total:  %{time_total}s\n

2.发起请求

url -w "@curl-format.txt" -o /dev/null -s "http://wordpress.com/"

在windows机器上是curl -w "@curl-format.txt" -o NUL -s "http://wordpress.com/"

旁白解释

-w "@curl-format.txt" 通知cURL使用格式化的输出文件 -o /dev/null 将请求的输出重定向到/dev/null -s 通知cURL不显示进度条 "http://wordpress.com/" 是我们请求的URL,请使用引号包围(尤其当你的URL包含&查询字符串)

文本输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 time_namelookup:  0.001s
      time_connect:  0.037s
   time_appconnect:  0.000s
  time_pretransfer:  0.037s
     time_redirect:  0.000s
time_starttransfer:  0.092s
                   ----------
        time_total:  0.164s
输出的啥意思呢🧐?我解释一下:
  • time_namelookup:DNS 域名解析的时间,就是把http://wordpress.com 转换成ip地址的过程
  • time_connect:TCP 连接建立的时间,就是三次握手的时间
  • time_appconnect:SSL/SSH等上层协议建立连接的时间,比如 connect/handshake 的时间
  • time_pretransfer:从请求开始到响应开始传输的时间
  • time_starttransfer:从请求开始到第一个字节将要传输的时间
  • time_total:这次请求花费的全部时间

制作成Linux/Mac快捷命令(alise 别名)

alias curltime="curl -w \"@$HOME/.curl-format.txt\" -o /dev/null -s "

制作成Linux/Mac 独立脚本

脚本不需要单独的包含格式化的文本。

在可执行路径中,创建名为curltime的文件,粘贴下面内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash

curl -w @- -o /dev/null -s "$@" <<'EOF'
    time_namelookup:  %{time_namelookup}\n
       time_connect:  %{time_connect}\n
    time_appconnect:  %{time_appconnect}\n
   time_pretransfer:  %{time_pretransfer}\n
      time_redirect:  %{time_redirect}\n
 time_starttransfer:  %{time_starttransfer}\n
                    ----------\n
         time_total:  %{time_total}\n
EOF

制作成windows快捷方式(bat批处理)

把下面的命令写入curltime.bat: curl -w "@%~dp0curl-format.txt" -o NUL -s %*

以上手段后,curltime wordpress.org就可以拿到cURL的请求耗时。

🤩 cURL还有一个小技巧:模拟连接/传输超时。

连接超时时间用--connect-timeout参数来指定,数据传输的最大允许时间用-m参数来指定。

连接超时的话,出错提示形如:curl: (28) connect() timed out!

数据传输的最大允许时间超时的话,出错提示形如: curl: (28) Operation timed out after 2000 milliseconds with 0 bytes received

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 精益码农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
curl命令查看响应时间
curl -w "%{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download}" -X GET "http://IP地址+端口/?参数" curl -w "%{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download}" -X POST -H "Content-Type: application/json" -d '{"test1":"hah","test2":"qwe","test3":"111"}' "http://IP地址+端口/?参数"
oktokeep
2024/10/09
1550
使用 cURL 对Web请求进行性能测试
在做 Web 开发的时候,经常需要对 Web Page 或者 REST-ful API 做简单的 Benchmark。本文将介绍如何使用 cURL 进行简单快速的性能评测。本文内容分为以下两部分:
Debian中国
2018/12/21
2.9K0
Curl命令分析接口耗时
Curl是一个非常实用的,用来与服务器之间传输数据的工具,支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP),Curl设计为无用户交互下完成工作。   Curl提供了一大堆非常有用的功能,包括代理访问、用户认证、Ftp上传下载、HTTP POST、SSL连接、Cookie支持、断点续传 。。。
Luga Lee
2021/12/09
7.3K0
Curl命令分析接口耗时
记几个Curl工具使用技巧
1. 输出内容自动换行: curl  -w "\n"  https://www.seekerhcl.cn/ ---- 2. 指定网卡作为出口: curl --interface eth0 ip.sb 或 curl --int 192.168.0.10 ip.sb (此处IP是网卡对应IP地址) ---- 3. 打印请求站点的耗时情况: curl -o /dev/null -s -w %{http_code}::%{time_namelookup}::%{time_connect}::%{time_start
大大大黑白格子
2020/06/10
2.6K0
Linux - curl -w 参数详解
当 curl 没有指定 -L、--location 参数跟随重定向时,此变量将显示重定向实将跳转的实际 URL
小菠萝测试笔记
2021/06/17
5.6K0
Linux - curl -w 参数详解
curl 请求检测各阶段用时
APPCONNECT:从开始计算,应用层(SSL,在TCP之上的应用层)连接/握手完成的耗时
躺平程序员老修
2023/09/05
5040
CDN排障系列:curl的高级使用姿势
curl 是一个功能非常强大的开源软件,支持FTP,HTTP,HTTPS,Telnet等多种协议。对于运维、开发同学来说,它是工作中不可缺少的排障利器。它的基本使用姿势请参考文档https://cloud.tencent.com/developer/article/1419809
淡淡的味道
2019/07/05
1.1K0
CDN排障系列:curl的高级使用姿势
使用 cURL 测量网站响应时间
内容整理自:https://blog.cloudflare.com/a-question-of-timing/,其中还有 chrome 的测量方式,有兴趣的朋友可以看一下。
dys
2018/11/30
2K0
使用 cURL 测量网站响应时间
【转】使用CURL检测Client侧发起的HTTP请求各阶段时间
参考原文地址: https://blog.51cto.com/h2ofly/1957171
保持热爱奔赴山海
2019/09/17
1.5K0
【转】使用CURL检测Client侧发起的HTTP请求各阶段时间
说说 Linux 的 curl 命令
比如上面的 imlht.com.test,一般情况下你是没有这个证书的,但是你又想测试 10.43.1.101 的 /user 接口,此时可以直接跳过测接口的内容。
仁扬
2023/07/11
2180
使用CURL检测Clinet侧发起的HTTP请求各阶段时间
上周,我方的一个客户反馈,访问我们的接口,平均耗时在2s以上。但是我方对请求进入,和请求返回,整个过程都有监控,我方的耗时基本在50ms以内,非常快。
保持热爱奔赴山海
2019/09/17
1.6K0
使用CURL检测Clinet侧发起的HTTP请求各阶段时间
curl 命令常用场景
curl 命令向 www.qq.com 发出 GET 请求,服务器返回的内容会在命令行输出。
Yorkyu
2022/03/22
5880
curl 命令常用场景
curl 查看时间
请求: curl -o /dev/unll -s -w "\n"HTTP返回码:%{http_code}"\n"对端IP地址:%{remote_ip}"\n"应用建连时间:%{time_appconnect}"\n"TCP连接时间:%{time_connect}"\n"DNS解析时间:%{time_namelookup}"\n"准备传输时间:%{time_pretransfer}"\n"开始传输时间:%{time_starttransfer}"\n""\n"总时间:%{time_total}"\n" https://www.baidu.com 返回: HTTP返回码:200
22
2020/11/18
4.3K1
【linux命令讲解大全】148.curl命令:命令行文件传输工具(下)
使用curl选项-u可以完成HTTP或者FTP的认证,可以指定密码,也可以不指定密码在后续操作中输入密码:
全栈若城
2024/03/02
3530
通过OpenSSH建立二层和三层加密隧道
OpenSSH 可以使用tun/tap设备来创建一个加密隧道,SSH隧道类似mode TCP模式下的OpenVPN,对于有需求快速设置一个基于IP的VPN来说非常方便。使用SSH隧道的优点:
用户2323866
2021/06/23
4.8K0
将HTTP请求对象转成curl命令行
基本思路是复制浏览器请求为curl命令行,然后解析命令行组装成HttpRequestBase对象,然后结合FunTester性能测试框架进行测试。
FunTester
2021/03/11
2.7K0
测试常用curl工具详解
使用-H 来添加自定义的头部,模拟特殊条件下源站/cdn节点对特性是否支持,结果返回是否符合预期。下面的这个例子,就是用来验证在控制台上添加了referer白名单后,模拟该referer头部返回是否符合预期。
sheazhang
2019/08/11
3.8K0
测试常用curl工具详解
curl测试网页响应时间&指定hosts
curl -o /dev/null -s -w '%{time_connect}:%{time_starttransfer}:%{time_total}\n' 'http://kisspeach.com'
用户1168904
2021/05/21
2.4K0
linux curl wget 测速
CURL测速 curl -o /dev/null -w "\n DNS 解析域名的时间\n namelookup:"%{time_namelookup}"\n client和server端建立TCP 连接的时间\n time_connect:"%{time_connect}"\n 从client发出请求;到web的server 响应第一个字节的时间\n time_starttransfer:"%{time_starttransfer}"\n client发出请求;到web的server发送会所有的相应数据的
葫芦
2020/04/23
8K0
curl语法整理
curl命令 是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。
ha_lydms
2023/08/10
3420
相关推荐
curl命令查看响应时间
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验