HTTP返回碼中301與302的區別

2021-10-03 16:57:10 字數 1895 閱讀 3914

一.官方說法

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重定向和**劫持(url hijacking)有什麼關係呢?這要從搜尋引擎如何處理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。

301重定向主要是用於在網域名稱的更改或者不帶www的網域名稱定向到帶www的網域名稱上,而302重定向可能我們的了解就比較少了,302重定向又稱之為302代表暫時性轉移,英文叫法為302 redirect,可以理解為暫時或者臨時重定向。表示乙個頁面只是臨時的搬到另乙個頁面上,從一些經驗老道的seo高手處得知,302重定向還有內部和外部之分,同乙個網域名稱中兩個不同的頁面之間的的臨時重定向,這個成為為內部的臨時重定向。另一種則是在不同的網域名稱之間做臨時的重定向,這種稱為外部臨時重定向。然而,基本上所有的搜尋引擎都只把它定義為內部的302重定向。對此,如果是內部的302重定向搜尋引擎並不會刪除搜尋結果中舊的頁面。

如果您是進行新舊網域名稱的替換,那麼302重定向與301重定向的效果是一樣的,並且都可以將舊網域名稱的權重傳遞到新網域名稱上,然而302卻是以另外的方式——pr劫持來實現的。實現過程如下:

如果a做302臨時重定向到b,a隨時有可能改變主意顯示本身或者做其他改變,那麼當googlebot(當然也包括baiduspider)等搜身引擎蜘蛛抓取a的時候,實際上抓取的是目標位址b的內容,這樣就導致a和b不同的位址有完全相同的內容,並且都被編入了索引,被認為是「利用重複的內容來干擾google搜尋結果的**排名」,**受到懲罰也是在情理之中。

小結302重定向被搜尋引擎認為是一種作弊方式,站內過多的302臨時重定向將有可能導致搜尋引擎的懲罰,致使站點被降權。

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 這是很官方的說法,那麼它們的區...