由于重定向會觸發(fā)額外的HTTP請求響應(yīng)周期,并會額外延長往返時間延遲,因此,將應(yīng)用發(fā)出的重定向數(shù)量降至最低至關(guān)重要。避免HTTP重定向可以縮減用戶等待網(wǎng)頁加載的時間。我們建議您仔細斟酌自己網(wǎng)站設(shè)計,看看可以在哪些方面提升網(wǎng)站性能。
以下是重定向模式的一些優(yōu)劣示例:
優(yōu)質(zhì):example.com使用響應(yīng)性網(wǎng)頁設(shè)計,無需重定向
中等:example.com -> m.example.com/home 劣質(zhì):example.com -> www.example.com -> m.example.com -> m.example.com/home Web應(yīng)用程序重定向的幾個原因 有時有必要為您的應(yīng)用到瀏覽器從一個URL到另一個重定向。Web應(yīng)用程序的重定向問題有幾個原因: 以指示已移動的資源的新位置。 要跟蹤的點擊和展示和日志提交頁面。 預(yù)留多個域,允許“用戶友好”或“虛榮”域名和網(wǎng)址,并趕上拼錯/輸錯網(wǎng)址。 一個網(wǎng)站或應(yīng)用程序的不同部分,不同的國家代碼頂級域名,不同的協(xié)議(HTTP到HTTPS),不同的安全策略(例如:未經(jīng)認(rèn)證和認(rèn)證網(wǎng)頁)等之間的連接。 要尾隨斜線添加到URL目錄名,使它們的內(nèi)容訪問瀏覽器。 不管是什么原因,重定向會觸發(fā)額外的HTTP請求- 響應(yīng)周期,并添加往返時間延遲。重要的是要盡量減少您的應(yīng)用程序發(fā)出的重定向的數(shù)量- 特別是啟動您的主頁的所需資源。要做到這一點,最好的方法是您使用重定向限制。 建議
消除網(wǎng)站不必要的重定向
這里有一些策略,簡單地消除不必要的重定向: 在您的頁面永遠不要引用已知重定向到其他URL的URLs。當(dāng)資源改變位置時,您的應(yīng)用程序需要有一個更新URL引用的方法。 永遠不要使用一個以上的重定向來獲得給定的資源。例如,如果C是目標(biāo)頁,并且有兩個不同的開始點,A和B,A和B應(yīng)直接定向到C;A不應(yīng)該先定向到B,再從B重定向到C。 盡量減少出現(xiàn)重定向,但實際上并不提供內(nèi)容的外域數(shù)量。有時候,人們需要從多個域重定向,以獲得不正確的用戶輸入(拼寫錯誤/輸錯網(wǎng)址)。但是,如果你要引導(dǎo)用戶他們可以從多個URL到達你的網(wǎng)站,你需要從你的名字每一個變種去購買新的域名。 使用服務(wù)器重寫 以便用戶輸入url 許多Web服務(wù)器支持內(nèi)部的“重寫”。這允許你配置從一個URL到另一個URL的映射;當(dāng)客戶端請求無效的URL,服務(wù)器自動重新映射到正確的資源,而不發(fā)出重定向。一定要使用他們獲得你無法控制的URL。千萬不要把它們作為易更新URL引用的一個手段;你應(yīng)該總是使用一個單一的URL指向一個資源。此外,如果可能緩存資源,還要避免使用它們。自動在目錄名稱末尾添加所需的尾隨斜線是用戶輸入的URL,這是一個很好的重寫機制的例子。
在后臺跟追網(wǎng)絡(luò)流量
為了跟追網(wǎng)頁各種屬性之間的流量,有些網(wǎng)站使用中間重定向到一個頁面,它記錄了一個獨立的中央服務(wù)器上的所有屬性。然而,因為這樣的重定向會添加頁面過渡之間的延遲,應(yīng)該避免他們,并尋找在后臺記錄頁面訪問量的其他方式。 記錄頁面訪問,一個流行的方法是在目標(biāo)頁面(或onload事件處理程序)的底部上包括一段JavaScript,當(dāng)用戶加載頁面時,通知日志服務(wù)器。這樣做的最常見的方式是建立一個請求給服務(wù)器,并把各種參數(shù)的數(shù)據(jù)進行編碼加密。為了保持HTTP響應(yīng)非常小的,請求一個透明的1x1像素的圖像是一個很好的選擇。稍微更優(yōu)化的方法是使用一個HTTP204響應(yīng)(“沒有內(nèi)容”),這稍微比1x1的GIF小。 |