linux curl

linux curl

参数说明

# curl工具:c写的一个命令
#   -A 设置user-agent curl -A "Chrome" http://www.baidu.com
#   -b 设置cookies,发起一个带cookies的http请求 curl -b a=test http://httpbin.org/cookies
#   -X 用指定方法请求,比如访问 http://httpbin.org/post这个网址,他是github上可以拉取到并且部署到我们本机的,只能用特定方法请求他,
#直接curl http://httpbin.org/post 会报错,但是指定请求类型就可以 curl -X POST http://httpbin.org/post
#   -I 只返回头信息,HEAD,  curl -I https://www.baidu.com
#   -d 以post方法请求,并发送相关参数,curl -d  test=123 http://httpbin.org/post 多个参数:curl -d "a=1&b=2&c=3" http://httpbin.org/post
#或者  curl -d a=1 -d b=2 -d c=3http://httpbin.org/post,也可以以文件方式请求,把 a=1&b=2&c=3写进/tmp/aaa.data  curl -d @/tmp/aaa.data  http://httpbin.org/post 也可以
#   -O 下载文件并以远程文件名保存 curl -O http://httpbin.org/image/jpeg
#   -o 小写,另存为另一个名字  curl -o aaa.jpeg http://httpbin.org/image/jpeg
#   -L 跟随重定向请求,curl -IL https://baidu.com
#   -H 设置头信息,webp是一种图片格式,是google定义,在不降低清晰图的情况下缩小图片。curl -o image.webp -H "accept:image/webp" http://httpbin.org/image
# curl -o image.png -H "accept:image/png" http://httpbin.org/image 就是请求这个网址,接受png合适的图片,并保存image.png
#   -k 跳过ssl验证,允许发起不安全的ssl请求比如curl -k https://www.12306.cn
#   -s 不显示其他无关信息,只显示ip

#http请求返回 301是永久重定向,302是临时重定向  403是被禁止,没有权限  401是未授权,需要登录


# 返回访问的状态码
# curl -m 5 -s -o /dev/null   -w %{http_code} https://www.baidu.com/

curl获取访问时间

生成打印字段配置文件

cat >./curl-format.txt  <<-EOF
   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
EOF

字段含义

cat ./curl-format.txt 
 
time_namelookup: DNS解析时间
time_connect:TCP 连接建立的时间,就是三次握手的时间 ,计算方式:time_connect - time_namelookup 
time_appconnect:SSL/SSH 等上层协议建立连接的时间,比如 connect/handshake 的时间
time_redirect: 从开始到最后一个请求事务的时间
time_pretransfer:从请求开始到响应开始传输的时间
time_starttransfer: 从请求开始到第一个字节将要传输的时间
time_total:这次请求花费的全部时间

示例:

curl -w "@curl-format.txt" -o /dev/null -s -L "https://www.ptmind.com"
 
   time_namelookup:  0.529108
      time_connect:  0.688685
   time_appconnect:  1.201098
     time_redirect:  0.000000
  time_pretransfer:  1.201304
time_starttransfer:  1.418342
                    ----------
time_total:  1.540865
 
#循环多次执行
for i in $(seq 1000);do curl -w "@curl-format.txt" -o /dev/null -s -L "https://www.ptmind.com";echo ------$i---------;sleep 1;done

计算公式

DNS查询时间:0529108
TCP连接时间: time_connect - time_namelookup = 0.688685 - 0.529108 = 159ms
服务器处理时间:time_starttransfer - time_pretransfer = 1.418342 - 1.201304 = 217ms
内容传输时间:time_total - time_starttransfer = 1.540865 - 1.418342 = 122ms

直接执行不要配置

curl -w "%{time_namelookup}\n%{time_connect}\n%{time_pretransfer}\n%{time_starttransfer}\n%{time_total}" -o /dev/null -s -L "https://www.ptmind.com"  
 
输出信息如下:
0.028
0.033
0.057
0.450
0.677
 
#循环执行
for i in $(seq 1000);do curl -w "%{time_namelookup}\n%{time_connect}\n%{time_pretransfer}\n%{time_starttransfer}\n%{time_total}" -o /dev/null -s -L "https://www.ptmind.com";echo ------$i---------;sleep 1;done
posted @ 2022-09-22 10:40  liwenchao1995  阅读(64)  评论(0编辑  收藏  举报