curl -w参数
-w参数的作用:
完成 HTTP 请求后,使用变量改变 标准输出 的信息。
变量的使用方式
- 使用 "%{variable_name}" 的格式使用变量
- 如果要打印%,需要写成%%,如:"%{variable_name}%%"
- 通过文本文件传入变量,使用@filename的形式
支持的变量(常用的)
content_type:HTTP 请求的 Content-type
errormsg:错误信息
http_code:响应码
local_ip:ip地址,可以是ipv4,也可以是ipv6
remote_ip:目标服务器的远程IP,可以是 ipv4、ipv6
remote_port:目标服务器的远程端口
response_code:和 http_code 一样,都是响应码
size_request:HTTP请求中发送的总字节数
url_effective:最后获取的 URL。如果 curl 添加了 -L 且真的重定向之后,这个就很有用了
-L:获取重定向后的真实地址
-k:忽略HTTPS请求的CA证书
只举一个例子
# curl -w "%{url_effective}" -o /dev/null -s -S -L -k https://www.zhipin.com/job_detail/?ka=header-job https://www.zhipin.com/web/common/security-check.html?seed=jWHNq2M5c7p9qn9d4E%3D&name=1f49f5f3&ts=1659155053136&callbackUrl=%2Fjob_detail%2F%3Fka%3Dheader-job&srcReferer=
以下变量多用于从文本文件获取请求耗时:
time_namelookup:DNS 域名解析的耗时,就是把 https://abc.com 转换成 ip 地址的过程
time_connect:TCP 连接建立的时间,就是三次握手的时间
time_appconnect:SSL/SSH 等上层协议建立连接的时间,比如 connect/handshake 的时间
time_redirect:在最终事务开始之前,所有重定向步骤(包括名称查找、连接、预传输和传输)所用的时间(以秒为单位)
time_redirect 显示多个重定向的完整执行时间
time_pretransfer:从请求开始到响应开始传输的时间
time_starttransfer:从请求开始到第一个字节将要传输的时间,包括预传输时间和服务器处理结果所需的时间。
time_total:这次请求花费的全部时间
从文件获取请求信息分析
# vim a.txt time_namelookup: %{time_namelookup}\n time_connect: %{time_connect}\n time_appconnect: %{time_appconnect}\n time_redirect: %{time_redirect}\n time_pretransfer: %{time_pretransfer}\n time_starttransfer: %{time_starttransfer}\n ----------\n time_total: %{time_total}\n
使用
# curl -w "@a.txt" -o /dev/null -sSLk www.baidu.com time_namelookup: 0.013 time_connect: 0.024 time_appconnect: 0.000 time_redirect: 0.000 time_pretransfer: 0.025 time_starttransfer: 0.036 ---------- time_total: 0.037
posted on 2022-07-30 12:35 hopeless-dream 阅读(554) 评论(0) 编辑 收藏 举报