work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

linux curl 命令的使用

Posted on 2018-08-21 10:46  work hard work smart  阅读(453)  评论(0编辑  收藏  举报

有时候需要内网访问接口地址,使用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: 这次请求花费的全部时间