cURL 是一个优秀的web请求工具,它还具有测量请求时间的能力。
实践
创建一个 curl 的配置文件:
$ vi ~/.curlrc
# 内容(较长,可以左右滑动)
-w "dnslookup: %{time_namelookup} | connect: %{time_connect} \n appconnect: %{time_appconnect} \n pretransfer: %{time_pretransfer} \n starttransfer: %{time_starttransfer} \n total: %{time_total} | size: %{size_download}\n"
使用:
$ curl -so /dev/null https://www.zasag.mn
# 输出
dnslookup: 1.510
connect: 1.757
appconnect: 2.256
pretransfer: 2.259
starttransfer: 2.506
total: 3.001
size: 53107
解析
下面看一下各个时间的含义:
time_namelookup DNS 解析时间。
time_connect 与 web server 建立 TCP 连接的时间。
time_appconnect 建立 TLS(安全传输层协议) 的时间。
time_starttransfer client 读到 server 返回的第一个字节的时间。
time_total client 关闭链接的时间。
通过这几个时间点,我们就可以方便的知道请求过程的细节,找到主要性能点。
内容整理自:https://blog.cloudflare.com/a-question-of-timing/,其中还有 chrome 的测量方式,有兴趣的朋友可以看一下。
点击下面的 阅读原文 查看 文章列表。