我会说你是对的, (time_starttransfer - time_connect) 绝对是服务器处理请求所花费的时间。
但是 - 我也想知道 time_connect 和 time_pretransfer 有什么区别?(被@Schwartzie 和@Cheeso 评论所吸引)
通过查看网络上的几个 curl 查询,我发现有时它们是相等的,有时它们不是。
然后我发现(至少我相信如此)它们仅在 HTTPS 请求上有所不同,因为服务器需要一些时间来解密 ssl 层,这不完全是目标应用程序花费的时间,而是托管应用程序的服务器花费的时间/服务。
解密 ssl 的时间(以及连接时间,在 time_connect 中给出的时间)是 time_appconnect,并且只有当它为 0 时(如非 https 请求)- time_connect 和 time_pretransfer 是相等的,否则对于 https 请求它们不同,对于 https time_pretransfer 将等于 time_appconnect(而不是 time_connect)。
检查以下两个示例:
curl -kso /dev/null -w "time_connect=%{time_connect}, time_appconnect:%{time_appconnect}, time_pretransfer=%{time_pretransfer}\n" http://www.csh.rit.edu
- time_connect=0.128, time_appconnect:0.000, time_pretransfer=0.128
curl -kso /dev/null -w "time_connect=%{time_connect}, time_appconnect:%{time_appconnect}, time_pretransfer=%{time_pretransfer}\n" https://www.csh.rit.edu
- time_connect=0.133, time_appconnect:0.577, time_pretransfer=0.577
所以我会说 time_pretransfer 与 time_connect 相比使用起来更精确,因为它也会尊重 ssl 连接,也许还有一些我不知道的其他事情。
前面说了这么多,我想说的是这个问题的更准确的答案:
可能是:
- time_starttransfer - time_pretransfer
正如@Schwartzie 已经提到的那样,我只是想了解原因。