HTTP返回碼中301與302的區別

2022-08-02 06:00:15 字數 1338 閱讀 3479

一.官方說法

301,302 都是http狀態的編碼,都代表著某個url發生了轉移,不同之處在於:

301 redirect: 301 代表永久性轉移(permanently moved)。

302 redirect: 302 代表暫時性轉移(temporarily moved )。

這是很官方的說法,那麼它們的區別到底是什麼呢?

二.現實中的差異

2.1.對於使用者

301,302對使用者來說沒有區別,他們看到效果只是乙個跳轉,瀏覽器中舊的url變成了新的url。頁面跳到了這個新的url指向的地方。

2.2.對於引擎及站長

2.2.1 302

302轉向可能會有url規範化及**劫持的問題。可能被搜尋引擎判為可疑轉向,甚至認為是作弊。

**規範化

請參見:

**劫持

302重定向和**劫持(urlhijacking)有什麼關係呢?這要從搜尋引擎如何處理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劫持。你辛辛苦苦所寫的內容就這樣被別人偷走了

2.2.2 301

當網頁a用301重定向轉到網頁b時,搜尋引擎可以肯定網頁a永久的改變位置,或者說實際上不存在了,搜尋引擎就會把網頁b當作唯一有效目標。

301的好處是:

第一, 沒有**規範化問題。

第二, 也很重要的,網頁a的pr網頁級別會傳到網頁b。

HTTP返回碼中301與302的區別

一 官方說法 301,302 都是http狀態的編碼,都代表著某個url發生了轉移,不同之處在於 301 redirect 301 代表永久性轉移 permanently moved 302 redirect 302 代表暫時性轉移 temporarily moved 這是很官方的說法,那麼它們的區...

HTTP返回碼中301與302的區別

一 官方說法 301,302 都是http狀態的編碼,都代表著某個url發生了轉移,不同之處在於 301 redirect 301 代表永久性轉移 permanently moved 302 redirect 302 代表暫時性轉移 temporarily moved 這是很官方的說法,那麼它們的區...

HTTP返回碼中301與302的區別

一 官方說法 301,302 都是http狀態的編碼,都代表著某個url發生了轉移,不同之處在於 301 redirect 301 代表永久性轉移 permanently moved 302 redirect 302 代表暫時性轉移 temporarily moved 這是很官方的說法,那麼它們的區...