有时候需要内网访问接口地址,使用curl命令,带上-v参数
-v
参数可以显示一次 http 通信的整个过程,包括端口连接和 http request 头信息
curl -v http://172.96.96.96:8888/interface/queryData.htm?para=value
1、curl发送Post请求
curl http://127.0.0.1:8888/interface/queryData.htm -X POST -d ‘a=1&b=2’
2、分析请求耗时情况
curl -i -w ' \n 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 time_total %{time_total}\n' http://xxx.xxx.com/interface/queryData.htm
返回如下:
time_namelookup 5.141 time_connect 5.177 time_appconnect 5.333 time_redirect 0.000 time_pretransfer 5.333 time_starttransfer 5.372 time_total 5.372
DNS 查询: 5.141秒
TCP连接时间: time_pretransfer(5.333) - time_namelookup(5.141) = 192ms
服务器处理时间: starttransfer(5.372) - pretransfer(5.333) = 39ms
内容传输时间 total(5.372) - starttransfer(5.372) = 0ms
变量解释
time_namelookup: DNS域名解析的时候,就是把http://xxx.xxx.com 转换成ip地址的过程
time_connect: TCP连接建立的时间,就是三次握手的时间
time_appconnect: SSL/SSH等上层协议建立连接时间,比如connect/handshake的时间
time_pretransfer: 从请求开始到响应开始传输的时间
time_redirect: 从开始到最后一个请求事务的时间
time_starttransfer: 从请求开始到第一个字节将要传输的时间
time_total: 这次请求花费的全部时间