閱讀時間 13 分鐘
HTTP 重新導向狀態碼詳解:301、302、303、307、308 等
一次看懂每個 3xx 狀態碼的意義:從是否永久、要求方法、快取與 SEO 比較 301、302、303、307 和 308 轉址的差異,並附 nginx、Apache 與 PHP 設定範例。
閱讀文章免費重新導向工具
每次重新導向都會讓訪客多等一次往返,實際的網頁才會開始載入。透過計時瀑布圖,確切查看重新導向鏈中每個躍點花了多少時間。
Cloudflare 邊緣網路一律會驗證憑證,因此這個選項無法略過驗證。憑證問題會顯示在檢查結果中。
隨第一個要求一起傳送,上限 16 KB。除非您另外設定 Content-Type 標頭,否則 JSON 內容會以 application/json 傳送,其他內容則以表單格式傳送。
1 至 50。瀏覽器最多只追蹤 20 次重新導向。
網站可能會對手機、爬蟲和連結預覽機器人採用不同的重新導向。
會隨重新導向鏈中的每個要求一起傳送。
尚未新增自訂標頭。
填入值後才會傳送此標頭。標頭值不會儲存。
追蹤 HTML 網頁中的 <meta http-equiv="refresh"> 標記與 Refresh 標頭。
追蹤網頁指令碼中簡單、無條件的重新導向,例如 location.href = "…"。
設定會儲存在這個瀏覽器中。Cookie、標頭值和 POST 要求主體一律不會儲存。
重新導向是一次完整的額外要求。瀏覽器必須查詢下一個主機、建立連線、為新網域進行 TLS 協商,並等待伺服器回應,然後才能要求網頁本身。同一主機上的一個躍點可能只需要幾十毫秒,但若經過短網址服務、追蹤網域和從 HTTP 導向 HTTPS 的規則,整條重新導向鏈很容易就多出半秒以上,在行動網路上更是如此。
重新導向的時間發生在所有其他步驟之前,因此會直接計入首位元組時間(Time to First Byte)和最大內容繪製(Largest Contentful Paint)。Lighthouse 和 PageSpeed Insights 也因此會標示主要文件上的重新導向。
對於每個躍點,TrueURL 會測量從送出要求到收到回應標頭的時間。需要建立新連線時,這段時間包含 DNS 查詢以及 TCP 和 TLS 連線的建立,再加上伺服器的處理時間,但不包含下載網頁主體的時間。瀑布圖會依序顯示各個躍點,讓最慢的那個一目了然。
測量是從執行檢查的 Cloudflare 資料中心進行的(通常是離您最近的那一個),而不是從您的裝置。結果顯示的是各伺服器的回應速度,但實際訪客在每個躍點上還會再加上自己的網路延遲。重複執行可以減少雜訊:第一次執行時,DNS 快取可能還沒有資料,連線也必須重新建立;之後的執行通常較接近穩定狀態。
以下是大略的參考標準,也是 TrueURL 為每個躍點的時間標示顏色時採用的分級:
最好的最佳化方式,是直接移除躍點。其次,請盡可能在靠近訪客的位置回應重新導向:CDN 或邊緣規則的回應速度,遠快於只為了送出一個 301 就必須啟動的應用程式。
閱讀時間 13 分鐘
一次看懂每個 3xx 狀態碼的意義:從是否永久、要求方法、快取與 SEO 比較 301、302、303、307 和 308 轉址的差異,並附 nginx、Apache 與 PHP 設定範例。
閱讀文章這取決於伺服器和距離,但每個躍點都是一次完整的往返:同一主機上的邊緣重新導向通常需要數十毫秒,而重新導向至新網域,或由緩慢應用程式產生的重新導向,則需要數百毫秒。行動網路還會增加更多時間。請在上方測量您自己的重新導向鏈,就能知道實際情況。
TrueURL 是從 Cloudflare 資料中心進行測量,它與目標伺服器之間的連線通常比您的裝置更快。您的瀏覽器也可能重複使用連線、因 HSTS 而略過某次重新導向,或使用快取的 301。請用這些數字來比較各個躍點,而不要當成每位訪客實際體驗的精確預測。
對某個主機的第一次要求通常包含 DNS 查詢,以及建立新的 TCP 和 TLS 連線,而同一主機上的後續躍點可能會重複利用其中部分成果。如果是後面的某個躍點特別慢,請查看該伺服器為了產生重新導向做了哪些處理。
是的,若想得到可靠的數字,就應該這麼做。單次測量會隨網路狀況和伺服器負載而變動。請重複執行幾次,觀察典型的數值,而不是單一的離群值;第一次執行時預熱的快取,通常會讓之後的執行更快。
會間接影響。對於經由重新導向抵達的訪客,重新導向時間會計入首位元組時間和最大內容繪製(LCP),而 LCP 是 Google 網站使用體驗核心指標(Core Web Vitals)之一。在大型網站上,緩慢的重新導向也會減少爬蟲在同一時間內能擷取的網頁數量。
不是。這是到收到該躍點回應標頭為止的時間。最終網頁之後還得下載 HTML、樣式表、指令碼和圖片,因此重新導向時間是額外加在正常載入時間之上的延遲。