alifeiliu

alifeiliu

哪有什么无限进步,能进一步是一步
github
x
discord server
email
strava
bilibili

性能優化鏈路之重定向

性能優化系列都將以這張圖出發進行全鏈路分析,讓我們慢慢展開~
image

認識重定向#

頁面重定向是指,當我們訪問一個 A 鏈接的頁面時,瀏覽器自動將鏈接 A 重定向到鏈接 B 的頁面訪問,轉而向 B 鏈接發起新的請求。這個過程用戶一般是無感知的
正確配置重定向可傳遞舊網站的SEO價值到新地址網站,也能在網站維護 / 升級期間平滑過渡不損害用戶體驗

什麼情況需要重定向#

  • 頁面發生移動,即 URL 變化了,域名、path 等
  • 頁面維護升級 / 刪除時保證舊鏈接可用性,重定向到新的頁面或友好的 404 頁,不損害用戶體驗
  • 規範 URL,即將多種 URL 寫法統一為單一 URL 利於 SEO

重定向的類型#

  • HTTP 重定向,302 臨時重定向、301 永久重定向等等;
  • HTML meta 標籤重定向,<meta http-equiv="refresh" content="3;url=https://alifeiliu.xlog.app/" />,3s 後重定向到指定 url;
  • JS 重定向,window.location = "https://alifeiliu.xlog.app/"location.href = "https://alifeiliu.xlog.app/"

image

重定向耗時計算#

啊,找一個 301 的 URL 真難,打開控制台,然後地址欄輸入https://w3c.github.io/navigation-timing

image

控制台輸入以下代碼:

const pnt = window.performance.getEntries()[0] // 獲取PerformanceNavigationTiming Entry
console.log(pnt.redirectEnd - pnt.redirectStart) // 重定向時間計算

打印了337.5ms的重定向時間:

image

這個時間是與網速有關的。因為要等待 Server Response 中的 301、302 等重定向相關 Status Code,再根據響應頭中的 Location 參數拿到新 URL 接著進行重定向,至少需要一個 RTT。因此距離伺服器遠或網絡狀況差的用戶,重定向時間也會相應變差

更多閱讀#

重定向是什麼?
重定向最佳實踐
重定向對 SEO 有負面影響嗎?

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。