HTTP 请求中的连接/发送/等待由什么负责?

HTTP 请求中的连接/发送/等待由什么负责?

pingdom 和 Google speed 等服务会分析读取 HTTP 文件所花费的时间。这包括

DNS: Obviously, DNS management to interpret the namespaces is responsible.
Connect: ???
Send: ???
Wait: ???
Receive: Disk speed in reading the file should be mainly responsible for this step.

正如我所探索的,Send 步骤通常趋向于 0。我认为 Web 服务器主要负责 Connect 步骤来处理请求。除了 Web 服务器在 Wait 步骤中的责任之外,还应该Scripting Language负责。

您能否帮助我更好地理解每个步骤的瓶颈是什么以及如何减少每个步骤所需的时间。

笔记:想象一下,带宽和连接速度不受服务器和客户端机器的限制。

附言非常感谢能介绍一些文章来澄清这个问题,因为通过搜索很难找到(可能是因为缺乏区分关键词)。谢谢!

答案1

DNS 是 gethostbyname() 响应所需的时间。这是解析主机名所需的时间。它取决于 DNS 服务器、网络延迟和 DNS 缓存。

连接是建立 TCP 连接所需的时间。它取决于网络(端到端延迟)。对于 SSL,还要添加建立加密隧道所需的时间。

发送是发送 HTTP 请求所需的时间,并且客户端可以查看数据是否已发送,因为它正在从远程服务器接收 ACK。

等待是远程服务器处理请求所需的时间。不涉及网络。

接收是接收 HTTP 响应(标头和数据)所需的时间。

当收到标头时、当服务器刷新部分输出时以及当收到全部内容时,您将会遇到一些重要事件 - 其中一些会触发 JavaScript 事件。

也可以看看:

相关内容