天天看點

HTTP 301 跳轉和302跳轉的差別

301和302 Http狀态有啥差別?

301,302 都是HTTP狀态的編碼,都代表着某個URL發生了轉移,不同之處在于: 301 redirect: 301 代表永久性轉移(Permanently Moved), 302redirect: 302 代表暫時性轉移(Temporarily Moved ), 當然 Http 狀态 200 标示沒有任何問題發生。  

這兩種轉移在使用的時候有啥好處或者問題?

301 重定向是網頁更改位址後對搜尋引擎友好的最好方法,隻要不是暫時搬移的情況,都建議使用301來做轉址。 302 重定向是臨時性轉移。 

在前些年,不少Black Hat SEO曾廣泛應用這項技術作弊,目前,各大主要搜尋引擎均加強了打擊力度,象Google前些年對Business.com以及近來對BMW德國網站的懲罰。即使網站客觀上不是spam,也很容易被搜尋引擎容易誤判為spam而遭到懲罰。 

研究搜尋引擎優化(SEO)的人,應該都知道,301,302 使用不當,或者靈活使用會有不錯的效果的,比如參看下面文章:

如果是運維人員,配置WEB伺服器的一些設定就可以實作跳轉。

其他WEB伺服器也可以通過設定實作跳轉,我就不羅列了。

從技術人員來說我們比較常用的跳轉方法有以下幾種:

方法1:Response.Redirect("Test.aspx");

狀态碼 302  臨時性跳轉

方法2:<meta http-equiv="refresh" content="5; URL=Test.aspx" />

meta fresh: 這在2000年前比較流行,不過現在已很少見。其具體是通過網頁中的meta指令,在特定時間後重定向到新的網頁,如果延遲的時間太短(約5秒之內),會被判斷為spam。這種跳轉方式,整個跳轉過程中,頁面Http狀态都是200,即,頁面沒有任何錯誤發生。

方法3:Server.Transfer("Test.aspx");

這種跳轉方式,整個跳轉過程中,頁面Http狀态都是200,即,頁面沒有任何錯誤發生。

方法4:URLRewrite

沒有一種是301跳轉。也就是上面幾種跳轉方式都用不到301跳轉的好處。

使用301跳轉有啥好處呢?

SEO(搜尋引擎優化)中提到一點:如果我們把一個位址采用301跳轉方式跳轉的話,搜尋引擎會把老位址的PageRank等資訊帶到新位址,同時在搜尋引擎索引庫中徹底廢棄掉原先的老位址。

如何編碼實作301跳轉呢?

Response.Status = "301 Moved Permanently";

Response.AddHeader("Location","..."); 這裡的 ... 表示你要跳轉去的頁面。

本文轉自Grodd51CTO部落格,原文連結:http://blog.51cto.com/juispan/1969329,如需轉載請自行聯系原作者