HTTP狀態碼301和302的區別

2021-10-02 14:38:07 字數 1467 閱讀 5547

官方解釋:

301 代表永久性轉移

302 代表暫時性轉移

共同點:

301和302狀態碼都表示重定向,就是說瀏覽器在拿到伺服器返回的這個狀態碼後會自動跳轉到乙個新的url位址,這個位址可以從響應location首部中獲取(使用者看到的效果就是他輸入的位址a瞬間變成了另乙個位址b)—這是他們的共同點

不同點:

301表示舊位址a的資源已經被永久性移除了(這個資源不可訪問了),搜尋引擎在抓取新內容的同時也就將舊的**交換為重定向之後的**;

302表示舊位址a的資源還在(仍然可以訪問),這個重定向只是臨時從舊位址a跳轉到位址b,搜尋引擎會抓取新的內容而儲存舊的**。

常見應用場景:

場景一:想換個網域名稱,舊的網域名稱不用了,這樣使用者訪問舊網域名稱時用301就重定向到新的網域名稱。其實也是告訴搜尋引擎收錄的網域名稱需要對新的網域名稱進行收錄。

場景二: 登入後重定向到指定的頁面,這種場景比較常見的就是登陸成功跳轉到具體的系統頁面。

場景三:有時候需要自動重新整理頁面,比如5秒後自動返回到訂單詳細頁面之類。

場景四:有時系統進行公升級或者切換某些功能時需要臨時更換位址。

場景五:像微博之類的使用短網域名稱,使用者瀏覽後需要重定向到真實的位址之類。

301與302在選擇上注意的問題–302重定向和**劫持

從**a 做乙個302 重定向到**b 時,主機伺服器的隱含意思是**a 隨時有可能改主意,重新顯示本身的內容或轉向其他的地方。大部分的搜尋引擎在大部分情況下,當收到302重定向時,一般只要去抓取目標**就可以了,也就是說**b。如果搜尋引擎在遇到302 轉向時,百分之百的都抓取目標**b 的話,就不用擔心**url 劫持了。問題就在於,有的時候搜尋引擎,尤其是google,並不能總是抓取目標**。

比如說,有的時候a **很短,但是它做了乙個302重定向到b**,而b**是乙個很長的亂七八糟的url**,甚至還有可能包含一些問號之類的引數。很自然的,a**更加使用者友好,而b**既難看,又不使用者友好。這時google很有可能會仍然顯示**a。由於搜尋引擎排名演算法只是程式而不是人,在遇到302重定向的時候,並不能像人一樣的去準確判定哪乙個**更適當,這就造成了**url劫持的可能性。也就是說,乙個不道德的人在他自己的**a做乙個302重定向到你的**b,出於某種原因, google搜尋結果所顯示的仍然是**a,但是所用的網頁內容卻是你的**b上的內容,這種情況就叫做**url 劫持。你辛辛苦苦所寫的內容就這樣被別人偷走了。302重定向所造成的**url劫持現象,已經存在一段時間了。不過到目前為止,似乎也沒有什麼更好的解決方法。

大體意思是會引起搜尋引擎的排名,而且302重定向很容易被搜尋引擎誤認為是利用多個網域名稱指向同乙個**,那麼你的**就會被封掉。

總之,除非是真的臨時重定向使用302,其他情況最好還是使用301

http狀態碼301和302

官方的比較簡潔的說明 301 redirect 301 代表永久性轉移 permanently moved 302 redirect 302 代表暫時性轉移 temporarily moved ps 這裡也順帶記住了兩個比較相近的英語單詞 permanently temporarily 詳細來說,3...

複習HTTP狀態碼 301和302

一,http狀態碼 1xx 資訊狀態碼 接受的請求正在處理。2xx 成功狀態碼 請求正常處理完畢。3xx 重定向狀態碼 需要進行附加操作以完成請求。4xx 客戶端錯誤狀態碼 伺服器無法處理請求。5xx 服務端錯誤狀態碼 伺服器處理請求出錯。二,詳解301和302跳轉的區別 301 永久重定向。表示請...

http狀態碼301和302的區別

官方的比較簡潔的說明 301 redirect 301 代表永久性轉移 permanently moved 302 redirect 302 代表暫時性轉移 temporarily moved 詳細來說,301和302狀態碼都表示重定向,就是說瀏覽器在拿到伺服器返回的這個狀態碼後會自動跳轉到乙個新的...