通过curl命令分析http接口请求各阶段的耗时等

目录

      • 一、介绍
      • 二、功能
        • 1、-v 输出请求 响应头状态码 响应文本等信息
        • 2、-x 测试代理ip是否能在该网站使用
        • 3、-w 额外输出查看接口请求响应的消耗时间
        • 4、-o 将响应结果存储到文件里面
        • 5、-X post请求测试 (没测成功用的不多)

一、介绍

  • Curl是一个用于发送和接收请求的命令行工具和库,可以用来测试网站能否正常访问、网站URL响应什么状态码、网站响应文本内容、连接接口的请求时间等
  • curl 是常用的命令行工具,用来请求 Web 服务器,它的名字就是客户端(client)的 URL 工具的意思,如果熟练的话,完全可以取代 Postman 这一类的图形界面工具

二、功能

1、-v 输出请求 响应头状态码 响应文本等信息

  • curl -v http://httpbin.org/get
    通过curl命令分析http接口请求各阶段的耗时等_第1张图片

2、-x 测试代理ip是否能在该网站使用

  • curl --connect-timeout 5 -x 58.118.19.119:8011 http://httpbin.org/get
    通过curl命令分析http接口请求各阶段的耗时等_第2张图片

3、-w 额外输出查看接口请求响应的消耗时间

  • 新建curl-format.txt文件,文件内容如下
    通过curl命令分析http接口请求各阶段的耗时等_第3张图片

    \n 
    time_namelookup: %{time_namelookup}\n 
    time_connect: %{time_connect}\n 
    time_appconnect: %{time_appconnect}\n 
    time_pretransfer: %{time_pretransfer}\n 
    time_starttransfer: %{time_starttransfer}\n 
    time_redirect: %{time_redirect}\n 
    time_total: %{time_total}\n 
    \n
    
  • curl输出的时间含义,其中time_total代表整个请求所消耗的时间

    time_namelookup:dns解析总共消耗的时间
    time_connect:从开始dns解析到tcp建联成功之间总共消耗的时间
    time_appconnect:从开始dns解析到ssl握手成功之间总共消耗的时间,以收到Finished包为准。
    time_pretransfer:从开始dns解析到发起http请求之间总共消耗的时间
    time_starttransfer:从开始dns请求到服务器响应首个字节之间总共消耗的时间
    time_total:整个请求所消耗的时间,包含dns解析、tcp握手和ssl握手的时间
    
  • 然后在当前curl-format.txt文件所在路径下,输入命令curl -w "@curl-format.txt" http://httpbin.org/get
    通过curl命令分析http接口请求各阶段的耗时等_第4张图片

  • 更多介绍参考文档
    通过curl命令分析http接口请求各阶段的耗时等_第5张图片

4、-o 将响应结果存储到文件里面

  • curl -o resp.html http://httpbin.org/get
    通过curl命令分析http接口请求各阶段的耗时等_第6张图片

5、-X post请求测试 (没测成功用的不多)

  • post请求类型application/x-www-form-urlencoded,使用-d参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法,因此可以省略-X POST,链接
    curl  http://11.120.12.89:6666/sengMsg -X POST -d "parameterName1=parameterValue1¶meterName2=parameterValue2"
    
  • post请求类型application/json , 链接
    curl  http://11.120.12.89:6666/sengMsg -X POST -H "Content-Type:application/json" -d '{"parameterName1":"parameterValue1","parameterName2":"parameterValue2"}'
    
  • 更多参考文档:更多介绍参考文档

你可能感兴趣的:(#,PythonKnowledge,http,lua,网络协议)