使用curl命令分析http请求耗时情况
使用curl命令发送http POST请求
curl -v -X POST -d @data.json --header "Content-Type: application/json" $url
curl -w选项
Defines what to display on stdout after a completed and successful operation.
The format is a string that may contain plain text mixed with any number of variables. The string can be specified as "string", to get read from a particular file you specify it "@filename"
and to tell curl to read the format from stdin you write "@-".
示例
[root@localhost ~]# cat format.txt \n\n http_code: %{http_code}\n local_addr: %{local_ip}:%{local_port}\n remote_addr: %{remote_ip}:%{remote_port}\n size_upload: %{size_upload}\n speed_upload: %{speed_upload}\n size_download: %{size_download}\n speed_download: %{speed_download}\n ----------\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 ----------\n time_total: %{time_total}\n [root@localhost ~]# [root@localhost ~]# curl -v -w @format.txt -X POST -d @data.json --header "Content-Type: application/json" $url * About to connect() to v.qq.com port 80 (#0) * Trying 8.8.8.8... * Connected to v.qq.com (8.8.8.8) port 80 (#0) > POST /api/v2/database/upload?name=ron&age=18 HTTP/1.1 > User-Agent: curl/7.29.0 > Host: v.qq.com > Accept: */* > Content-Type: application/json > Content-Length: 717 > * upload completely sent off: 717 out of 717 bytes < HTTP/1.1 200 OK < Server: nginx < Date: Tue, 19 Jan 2021 11:58:31 GMT < Content-Type: application/json; charset=utf-8 < Content-Length: 145 < Connection: keep-alive < * Connection #0 to host v.qq.com left intact {"code":200,"data":{"download_url":"","download_protocol":"","host":"","intra_host":"","name":"","version":"","size":0,"image_id":""},"msg":"ok"} http_code: 200 local_addr: 10.0.0.9:32155 remote_addr: 8.8.8.8:80 size_upload: 717 // The total amount of bytes that were uploaded. speed_upload: 67.000 // The average upload speed that curl measured for the complete upload. Bytes per second. size_download: 145 // The total amount of bytes that were downloaded. speed_download: 13.000 // The average download speed that curl measured for the complete download. Bytes per second. ---------- time_namelookup: 10.523 // 从开始到完成域名解析的耗时 time_connect: 10.548 // 从开始到完成TCP三次握手的耗时 time_appconnect: 0.000 // 从开始到完成ssl/ssh等上层协议建立的耗时 time_redirect: 0.000 // time_pretransfer: 10.549 // 从请求开始到响应开始传输的时间 time_starttransfer: 10.642 // 从请求开始到第一个字节将要传输的时间,即Time To First Byte (TTFB) ---------- time_total: 10.643 [root@localhost ~]#
各变量对应的时间点详见下图
更多参考:A Question of Timing
作者:Standby — 一生热爱名山大川、草原沙漠,还有我们小郭宝贝!
出处:http://www.cnblogs.com/standby/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/standby/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。