首位元組時間(time to first byte)
想像替一家餐廳計時:從你點完餐的那一刻,到第一道菜送到桌上的那一刻——不是整頓飯,只是「多久後開始有東西送來」。首位元組時間(time to first byte, TTFB)就是網路版的那個量測:從用戶端送出請求,到伺服器回應的第一個位元組傳回的時間。它捕捉的是「在有用的東西開始到來之前的等待」,在頁面或檔案的其餘部分甚至還沒開始下載之前。
TTFB 是好幾個較小延遲首尾相接的總和。首先,請求傳到伺服器、回應的第一個位元組再傳回——至少一個往返時間(RTT),主要由距離與光速決定。在一條全新的連線上還有建立成本:一次 DNS 查詢、TCP 三向交握,以及(對 HTTPS)TLS 交握,每個都增添往返。接著伺服器需要時間真正產生回應——查詢資料庫、算出頁面——這是它的處理延遲。把它們加起來就得到 TTFB;唯有在此之後,瀏覽器才開始接收內文,最終導向完整頁面載入時間(page load time),也就是頁面完全就緒的那一刻。
為什麼重要:TTFB 是一個關鍵的診斷指標,因為它把「伺服器與網路的反應性」和「下載速度」分開。高 TTFB 指向距離、連線建立、或緩慢的後端——而非檔案有多大。這正是快取、CDN 與連線重用發揮效用的地方:靠近使用者的 CDN 邊緣縮短 RTT 那一段、一次快取命中移除後端處理、一條重用的(持久)連線略過交握往返。誠實的提醒:TTFB 只是一個訊號。第一個位元組快,不保證頁面快——龐大的內文、許多額外資源、或繁重的用戶端算繪,仍可能讓整個頁面在第一個位元組到來後很久才完成。
一個只架在維吉尼亞的頁面,對雪梨的使用者顯示 320 毫秒的 TTFB——大半是兩次建立連線的往返加上漫長的距離。把它放到一個有雪梨邊緣的 CDN 之後,TTFB 降到約 25 毫秒,因為第一個位元組現在來自附近。
TTFB 量的是「任何回應到來之前的等待」,不是下載本身。
低 TTFB 不代表頁面快。它只量第一個位元組;總頁面載入還取決於回應大小、要載入多少其他資源、以及用戶端算繪——TTFB 與頁面載入時間相關卻不同。