Web-Server

什麼負責 HTTP 請求中的連接/發送/等待?

  • December 5, 2011

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 步驟來處理請求。以及Wait步驟中web伺服器的責任,Scripting Language也應該有責任。

您能否幫助我更好地了解每個步驟的瓶頸以及如何減少每個步驟所需的時間。

**注意:**想像一下頻寬和連接速度在伺服器和客戶端機器上都不是限制。

PS我非常感謝介紹澄清這個問題的文章,因為很難通過搜尋找到(可能是由於缺乏區分關鍵字)。謝謝!

DNS 是 gethostbyname() 響應所需的時間。這是解析主機名所需的時間。它取決於 DNS 伺服器、網路延遲和 DNS 記憶體。

Connect 是建立 TCP 連接所需的時間。它取決於網路(端到端延遲)。對於 SSL,還要添加建立加密隧道所需的時間。

Send 是發送 HTTP 請求所花費的時間,客戶端可以看到數據是否已發送,因為它正在接收來自遠端伺服器的 ACK。

等待是遠端伺服器處理請求所需的時間。不涉及網路。

Receive 是接收 HTTP 響應(標頭和數據)所需的時間。

當收到標頭時,您將遇到一些重要事件,當伺服器刷新部分輸出時以及收到整個內容時 - 其中一些會觸發 JavaScript 事件。

也可以看看:

引用自:https://serverfault.com/questions/337737