以下為 Faster Websites: Crash Course on Web Performance 這場 Talk 中其中一段的 Slide :
在沒有任何 cache 的情況下,瀏覽器 Request 一個頁面時,必經的第一個步驟就是 DNS Lookup 。
網路通訊過程必須知道對方的 IP Address 才有辦法將資料送到正確的地點,但要記住 IP Address 對人腦而言並不是件易事,因此人們就想出了一個辦法:人們只要知道網域(記住有意義的文字比記一大串數字容易許多)就好,正確的 IP 位址就交由 DNS 幫你找出來。這是 DNS 最基本的概念,詳細運作內容就不再另外花費篇幅贅述了。
透過 DNS 找出 IP Address 後,接著便進入了 TCP 建立連線階段,亦即 Three Way Handshake ,假設封包從 server 傳到 client 需要花費 60ms,那麼光這個階段就花費掉 180ms 了,這就是為什麼應該要啟動 Keep Alive 的原因,否則一個 Request 一個 Connection 的話,浪費掉的時間會非常可觀。
Three Way Handshake 過後,才開始進入 HTTP Request 階段,最後才是下載內容。
在開始後面的內容之前,先讓大家看看這一張圖,想必吸收前面幾篇文章的內容後,看到這一張圖更有感覺了吧?