1. 程式人生 > 其它 >Linux: 使用Curl命令檢視 http 請求各階段響應時間

Linux: 使用Curl命令檢視 http 請求各階段響應時間

~$ curl -o /dev/null -s -w %{time_namelookup}:%{time_connect}:%{time_starttransfer}:%{time_total} "https://service.5gcds.com:8890/isure6.stream.qqmusic.qq.com/C400000DNBpp3nTPMM.m4a?guid=2000000162&vkey=16CA4105AA83FD348BD7D4986E3A3AB66FDB3B666A81693442849AF3F320EACC04EEEB4D40702C8F79318455A21BA331B1CB08161BA4996B&uin=&fromtag=262"
0.185274:0.264978:5.796605:23.723368 (走cdn)

~$ curl -o /dev/null -s -w %{time_namelookup}:%{time_connect}:%{time_starttransfer}:%{time_total} "https://isure6.stream.qqmusic.qq.com/C400000DNBpp3nTPMM.m4a?guid=2000000162&vkey=16CA4105AA83FD348BD7D4986E3A3AB66FDB3B666A81693442849AF3F320EACC04EEEB4D40702C8F79318455A21BA331B1CB08161BA4996B&uin=&fromtag=262"
0.205355:0.302128:0.771375:3.684324 (不走cdn)

下面解釋來自https://blog.csdn.net/wuhendadi/article/details/100101289

示例:

curl -o /dev/null -s -w "time_namelookup:%{time_namelookup}\ntime_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "https://www.baidu.com/"

輸出:

time_namelookup: 0.005252

time_connect: 0.014415

time_starttransfer: 0.051369

time_total: 0.051625

上面這條命令及返回結果可以這麼理解:

time_namelookup: DNS 伺服器域名解析的時間(以上時間單位都是s) 。

time_connect: client 發出請求,到 c/s 建立TCP 的時間;裡面包括 DNS 解析的時間 。

time_starttransfer: client 發出請求;到 server 響應發出第一個位元組開始的時間;包括前面的2個時間 。

time_total: 從請求發起到連結關閉的總耗時。

curl 命令引數解釋:

-o: 把curl 返回的html、js 寫到垃圾回收站[ /dev/null]
-s: 去掉所有狀態
-w: 按照後面的格式寫出rt
time_namelookup: DNS 解析時間,從請求開始到 DNS 解析完畢所用時間,單位為秒,如果測試的地址為IP,這裡耗時即為0
time_commect: client 和 server 端建立 TCP 連線的時間,連線時間,從開始到建立TCP連線完成所用時間,包括前邊DNS解析時間,如果需要單純的得到連線時間,用這個 time_connect 時間減去前邊 time_namelookup 時間
time_starttransfer: 從 client 發出請求;到 web server 響應第一個位元組的時間
time_total: client 發出請求;到 web server 傳送回所有的相應資料的時間
http_code: http狀態碼,如200成功,301重定向,404資源未找到,500伺服器錯誤等
————————————————
版權宣告:本文為CSDN博主「古戰」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/wuhendadi/article/details/100101289