我们想访问一个网站时,每次按下回车或点击链接,都希望网站页面能尽快映入眼帘。那么您知道每次等待的时间中,都发生了什么吗?

域名查询时间

我们需要知道,在网络中,两个设备间的通信需要依靠 IP 地址才能实现,也就是说,您每次访问网站都是通过 IP 地址完成的,但您输入的明明是域名而不是 IP,这是为什么呢?

原因在于您的电脑会自动向设置在电脑上的 DNS 服务器发起查询,然后通过 DNS 服务器返回的 IP 地址访问网站。这一询问过程就是域名查询时间。大家可以使用 Ping 命令测试与 DNS 服务器的连接时间,大致得出域名查询时间。之所以说「大致」,是因为 Ping 命令只能测出连接时间,DNS 还需要额外的处理时间!

网络队列时间

电脑知道要访问网站的 IP 后,就会与之通信,而在网络中与之通信的不止是您一个,那么多人同时访问,先处理谁后处理谁?这时就需要排队了!排到您了,服务器自然会处理您的请求。

当然不只是网络资源要排队,服务器的内部处理进程,也需要排队的,等待排队还有数据处理,都需要时间的!

页面生成时间

以常见的博客程序 WordPress 为例:WordPress 由 PHP 语言编写,使用 MySQL 存储数据,借助 Nginx 进行页面解析。所以 PHP 首先向 MySQL 请求数据,然后再通过 Nginx 服务生成页面数据。

您每次浏览页面时,PHP 都需向 MySQL 索取一次数据,然后再经由 Nginx 生成页面。因此您会发现,有些网站打开后再刷新,速度并没有明显变快!

文件传输时间

页面数据传输到浏览器后,浏览器就会开始加载页面中包含的文件,例如 JavaScript 库、CSS 样式表、图片等。这些资源的耗时主要取决于您的带宽和浏览器的处理能力。

一般的浏览器会默认缓存这些静态类文件(简单来说就是不会经常变动的文件),使得再次刷新时无需重新下载,从而加快浏览速度!