重定向給網頁的優化
重定向的意思是,使用者的原始請求(例如請求A)被重定向到其他的請求(例如請求B)。這是HTTP世界中本來就存在的技術和現象,它本身沒有所謂的好和壞,它的存在也確實有其理由,為此HTTP協議中,規定了兩個狀態碼來標識這種場景。它們分別是:
301 Moved Permanently , 這個狀態碼標識使用者所請求的資源被移動到了另外的位置,客戶端收到此響應後,需要發起另外一個請求去下載所需的資源。這個狀態碼,日後可能會和另外一個狀態碼 308 (308 Permanent Redirect (approved as experimental RFC)[12])有些關聯(這個還沒有最終確定為標準)
302 Found ,這個狀態碼標識使用者所請求的資源被找到了,但不在原始位置,伺服器會回覆其他的一個地址,客戶端收到此響應後,也需要發起另外一個請求去下載所需的資源。這個狀態碼,日後可能會和另外兩個狀態碼有關聯。
303 See Other (since HTTP/1.1)
307 Temporary Redirect (since HTTP/1.1)
目前,我們一直只要區分301和302即可。它們本質上的區別到底是什麼呢?其實也不難:301表示永久重定向,302表示臨時重定向。對於一般的使用者而言,可能你還無法體會出來他們的區別,因為橫豎都是要重定向的。但對於搜尋引擎而言意義就非凡。我們都知道,搜尋引擎是需要不定期對網站資源進行爬網,以便完善對應的索引結構的。當某個資源被永久重定向(301),搜尋引擎會聰明地知道,在索引中應該記錄就是永久重定向之後的新地址,而不是老地址,這樣就可以避免使用者通過搜尋引擎來查詢的時候,每次還需要先到老地址,再重定向到新地址。而對於臨時重定向(302),則不會這麼做。