网站响应时间会对用户体验产生很大影响,如果您是一名 Web 开发人员,或者只是一名专门负责将各个部分组织在一起的服务器管理员,那么您必须强调一点,即用户在访问您的网站时不会感到沮丧 - 所以确实存在“对速度的需要”。
另请阅读:
本指南将向您展示如何从 Linux 命令行测试网站响应时间。在这里,我们将展示如何检查以秒为单位的时间,它需要:
- 执行名称解析。
- 用于与服务器的 TCP 连接。
- 开始文件传输。
- 要传输的第一个字节。
- 以完成完整的操作。
此外,对于启用 HTTPS 的站点,我们还将了解如何测试完成重定向和与服务器的 SSL 连接/握手所需的时间(以秒为单位)。听起来不错吧,好吧,让我们开始吧。
卷曲是一个功能强大的命令行工具,可使用 FILE、FTP、FTPS、HTTP、HTTPS 等协议从服务器传输数据或向服务器传输数据。在大多数情况下,它被用作,或用于检查 HTTP 标头。然而,在这里,我们将描述其鲜为人知的功能之一。
卷曲有一个有用的选项:-w用于在完成操作后在标准输出上打印信息。它有一些变量,我们可以使用它们来测试网站上面列出的不同响应时间。
我们将使用一些与时间相关的变量,这些变量可以以给定的格式作为文字字符串或在文件内传递。
因此,打开终端并运行以下命令:
$ curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://www.google.com

上述格式中的变量为:
- 时间名称查找– 时间,以秒为单位,从开始到名称解析完成所花费的时间。
- 时间连接– 时间(以秒为单位),从开始到完成与远程主机(或代理)的 TCP 连接所花费的时间。
- 预传输时间– 时间,以秒为单位,从开始到文件传输即将开始所花费的时间。
- 时间开始传输– 时间,以秒为单位,从开始到第一个字节即将被传输所花费的时间。
- 总时间– 完整操作持续的总时间(以秒为单位)(毫秒分辨率)。
如果格式太长,可以将其写入文件中并使用以下语法来读取:
$ curl -s -w "@format.txt" -o /dev/null https://www.google.com
在上面的命令中,标志:
-s– 告诉curl 安静地工作。-w– 在标准输出上打印信息。-o– 用于重定向输出(这里我们通过将其重定向到来丢弃输出)/dev/空)。
对于 HTTPS 站点,您可以运行以下命令:
$ curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nAppCon Time:\t\t%{time_appconnect}\nRedirect Time:\t\t%{time_redirect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://www.google.com

在上面的格式中,新的时间变量是:
- time_appconnect 时间– 时间(以秒为单位),从开始到完成与远程主机的 SSL 连接/握手所花费的时间。
- 时间重定向– 最终事务开始之前所有重定向步骤(包括名称查找、连接、预传输和传输)所花费的时间(以秒为单位);它计算多个重定向的完整执行时间。
需要注意的重要事项。
- 您会注意到,当您运行不同的测试时,响应时间值不断变化(由于多种因素),因此建议收集多个值并获得平均速度。
- 其次,从上面命令的结果可以看出,通过HTTP访问网站比通过HTTPS访问网站要快得多。
有关详细信息,请参阅 cURL 手册页:
$ man curl
最后但并非最不重要的一点是,如果您的结果不令人满意,那么您需要在服务器或代码中进行一些调整。您可以考虑使用以下教程,其中解释了使网站在 Linux 中加载速度更快的程序和技巧:
就这样!现在您知道如何从命令行测试网站响应时间。您可以通过下面的反馈表提出问题。
