用curl检测http请求为何时间长?

未知
2024-03-15 10:30:37
0

用curl检测http请求为何时间长?

以下是我在测量 HTTP 请求为何花费太长时间时经常使用的命令:

curl -L -w "time_namelookup: %{time_namelookup}
time_connect: %{time_connect}
time_appconnect: %{time_appconnect}
time_pretransfer: %{time_pretransfer}
time_redirect: %{time_redirect}
time_starttransfer: %{time_starttransfer}
time_total: %{time_total}
" https://example.com/

这是以单行方式编写的相同命令,以便我将来需要时可以通过三次单击轻松地从该页面复制它:

curl -L -w "time_namelookup: %{time_namelookup}\ntime_connect: %{time_connect}\ntime_appconnect: %{time_appconnect}\ntime_pretransfer: %{time_pretransfer}\ntime_redirect: %{time_redirect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" https://example.com/

上述命令的输出通常如下所示:

$ curl -L -w "namelookup: %{time_namelookup}\nconnect: %{time_connect}\nappconnect: %{time_appconnect}\npretransfer: %{time_pretransfer}\nstarttransfer: %{time_starttransfer}\ntotal: %{time_total}\n" https://example.com/
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
...
</html>
time_namelookup: 0.001403
time_connect: 0.245464
time_appconnect: 0.757656
time_pretransfer: 0.757823
time_redirect: 0.000000
time_starttransfer: 0.982111
time_total: 0.982326


在上面的输出中,为了简洁起见,我省略了大部分 HTML 输出,并用省略号替换了省略的部分。

下面的列表提供了上面输出中每个数字的描述。此信息直接从curl 7.20.0 的手册页中选取。详细信息如下:

  • time_namelookup:从开始到名称解析完成所花费的时间(以秒为单位)。

  • time_connect:从开始到完成与远程主机(或代理)的 TCP 连接所花费的时间(以秒为单位)。

  • time_appconnect:从开始到完成与远程主机的 SSL/SSH/etc 连接/握手所花费的时间(以秒为单位)。(7.19.0 中添加)

  • time_pretransfer:从开始到文件传输即将开始所花费的时间(以秒为单位)。这包括特定于所涉及的特定协议的所有预传输命令和协商。

  • time_redirect:在最终事务开始之前,所有重定向步骤(包括名称查找、连接、预传输和传输)所花费的时间(以秒为单位)。time_redirect 显示多个重定向的完整执行时间。(在7.12.3中添加)

  • time_starttransfer:从开始到第一个字节即将传输所花费的时间(以秒为单位)。这包括 time_pretransfer 以及服务器计算结果所需的时间。

  • time_total:完整操作持续的总时间(以秒为单位)。时间将以毫秒分辨率显示。


    这里值得注意的一件重要事情是,time_appconnect和time_connect时间的数字差异告诉我们在SSL / TLS握手中花费了多少时间。对于没有 SSL/TLS 的明文连接,time_appconnect报告为零。下面是一个演示这一点的示例输出:

$ curl -L -w "time_namelookup: %{time_namelookup}\ntime_connect: %{time_connect}\ntime_appconnect: %{time_appconnect}\ntime_pretransfer: %{time_pretransfer}\ntime_redirect: %{time_redirect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" http://example.com/
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
...
</html>
time_namelookup: 0.001507
time_connect: 0.247032
time_appconnect: 0.000000
time_pretransfer: 0.247122
time_redirect: 0.000000
time_starttransfer: 0.512645
time_total: 0.512853

另请注意,上述两个输出中的time_redirect均为零。这是因为在访问 example.com 时不会发生重定向。下面是另一个示例,该示例显示了发生重定向时输出的输出:

$ curl -L -w "time_namelookup: %{time_namelookup}\ntime_connect: %{time_connect}\ntime_appconnect: %{time_appconnect}\ntime_pretransfer: %{time_pretransfer}\ntime_redirect: %{time_redirect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" https://susam.net/blog
<!DOCTYPE HTML>
<html>
...
</html>
time_namelookup: 0.001886
time_connect: 0.152445
time_appconnect: 0.465326
time_pretransfer: 0.465413
time_redirect: 0.614289
time_starttransfer: 0.763997
time_total: 0.765413

当遇到 Web 服务中的潜在延迟问题时,这通常是我从多个客户端多次运行的第一个命令之一,因为此命令的结果有助于快速了解可能导致延迟问题的层。

以上就是用curl检测http请求为何时间长?的详细内容,更多请关注全栈开发网其它相关文章!
原文链接:https://susam.net/timing-with-curl.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 service@p2hp.com 进行投诉反馈,一经查实,立即处理!
-- -- 0

上一篇:没有了

下一篇:第三方Cookie是什么?

相关内容

Linux 6.9 内核正式版发布:支持 AMD P-State 首选核心、优化酷睿 Ultra 处理器性能
Linux 6.9 内核正式版发布:支持 AMD P-Sta...
Linux 6.9 内核正式版发布:支持 AMD P-State 首选核心、优化酷睿 Ul...
2024-05-14 10:42:43
如何在 PHP 中检测 n+1 查询
如何在 PHP 中检测 n+1 查询
n+1查询问题是软件开发中常见的性能问题。 N+1 查询会导致许多不必要的数据库调用。这可...
2024-05-11 12:58:01
Python 3.13 获首个 Beta 版更新:改进解释器 / 编译器性能、正式版有望 10 月发布
Python 3.13 获首个 Beta 版更新:改进解释器...
据 Python 博客,目前 Python 3.13 首个 Beta 版本已经发布,这是四...
2024-05-11 10:58:05
代码速度慢?避免这 19 种常见的 JavaScript 和 Node.js 错误
代码速度慢?避免这 19 种常见的 JavaScript 和...
速度、性能和响应性在 Web 开发中起着至关重要的作用,尤其是在使用 JavaScript...
2024-03-16 14:32:23
Linux性能分析的前60000毫秒
Linux性能分析的前60000毫秒
为了解决性能问题,你登入了一台Linux服务器,在最开始的一分钟内需要查看什么?
2024-03-14 11:53:50
第三方Cookie是什么? 近些年随着各个浏览器如Safari和微软等浏览器禁用第三方Cookie,以及IOS14隐私保护的出台...
用curl检测http请求为何时间长? 用curl检测http请求各部分花费的时间

最新文章

第三方Cookie是什么? 近些年随着各个浏览器如Safari和微软等浏览器禁用第三方Cookie,以及IOS14隐私保护的出台...
用curl检测http请求为何时间长? 用curl检测http请求各部分花费的时间