使用 curl 測試網(wǎng)站加載速度

curl 命令有一個(gè)鮮為人知的選項(xiàng),-w,該選項(xiàng)在請求結(jié)束之后打印本次請求的統(tǒng)計(jì)數(shù)據(jù)到標(biāo)準(zhǔn)輸出。

首先,我們定義控制打印行為的格式化字符串。新建文本文件 fmt.txt,并填入下面的內(nèi)容:

\n
Response Time for: %{url_effective}\n\n
DNS Lookup Time:\t\t%{time_namelookup}s\n
Redirection Time:\t\t%{time_redirect}s\n
Connection Time:\t\t%{time_connect}s\n
App Connection Time:\t\t%{time_appconnect}s\n
Pre-transfer Time:\t\t%{time_pretransfer}s\n
Start-transfer Time:\t\t%{time_starttransfer}s\n\n
Total Time:\t\t\t%{time_total}s\n

curl 提供了很多置換變量,可以在格式化字符串中通過 %{var} 的形式使用。完整的變量列表可以在 curl 的 manpage 中查看。簡單介紹一下我們使用的這幾個(gè)變量:

  • url_effective: 執(zhí)行完地址重定向之后的最終 URL;
  • time_namelookup: 從請求開始至完成名稱解析所花的時(shí)間,單位為秒,下同;
  • time_redirect: 執(zhí)行所有重定向所花的時(shí)間;
  • time_connect: 從請求開始至建立 TCP 連接所花的時(shí)間;
  • time_appconnect: 從請求開始至完成 SSL/SSH 握手所花的時(shí)間;
  • time_pretransfer: 從請求開始至服務(wù)器準(zhǔn)備傳送文件所花的時(shí)間,包含了傳送協(xié)商時(shí)間;
  • time_starttransfer: 從請求開始至服務(wù)器準(zhǔn)備傳送第一個(gè)字節(jié)所花的時(shí)間;
  • time_total: 完整耗時(shí)。

然后執(zhí)行請求,通過 @filename 指定保存了格式化字符串的文件:

$ curl -L -s -w @fmt.txt -o /dev/null http://www.google.com

輸出:

Response Time for: http://www.google.co.jp/?gfe_rd=cr&dcr=0&ei=cjIaWpTkHeiQ8QfnxYzoBA

DNS Lookup Time:        0.000038s
Redirection Time:       0.207271s
Connection Time:        0.000039s
App Connection Time:    0.000039s
Pre-transfer Time:      0.000067s
Start-transfer Time:    0.260115s

Total Time:             0.467691s
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容