301和302 Http狀態有啥區別?
301, 302 都是 HTTP 狀態的編碼,都代表著某個URL發生了轉移,不同之處在於: 301 redirect: 301 代表永久性轉移(Permanently Moved), 302 redirect: 302 代表暫時性轉移(Temporarily Moved ), 當然 Http 狀態 200 標示沒有任何問題發生。
這兩種轉移在使用的時候有啥好處或者問題?
301 重定向是網頁更改地址後對搜尋引擎友好的最好方法,只要不是暫時搬移的情況,都建議使用301來做轉址。 302 重定向是臨時性轉移。
在前些年,不少Black Hat SEO曾廣泛應用這項技術作弊,目前,各大主要搜尋引擎均加強了打擊力度,象Google前些年對Business.com以及近來對BMW德國網站的懲罰。即使網站客觀上不是spam,也很容易被搜尋引擎容易誤判為spam而遭到懲罰。
研究搜尋引擎優化(SEO)的人,應該都知道,301, 302 使用不當,或者靈活使用會有不錯的效果的,比如參看下面文章:
如果是運維人員,設定WEB伺服器的一些設定就可以實現跳轉,比如下面一些關於IIS實現重定向的文章
將請求重定向到檔案、目錄或程式 (IIS 6.0)
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/fbcccfce-6695-4f92-bd55-869d85ff49fb.mspx?mfr=true
重定向參考 (IIS 6.0)
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/41c238b2-1188-488f-bf2d-464383b1bb08.mspx?mfr=true
其他WEB伺服器也可以通過設定實現跳轉,我就不羅列了。
從技術人員來說我們比較常用的跳轉方法有以下幾種:
我們使用 Fiddler 工具來監控的下面提到的幾種方法,看跳轉過程中 HTTP 狀態碼是301? 302 ?200?:
方法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
這種跳轉方式,整個跳轉過程中,頁面 Http 狀態都是200,即,頁面沒有任何錯誤發生。
沒有一種是301跳轉。也就是上面幾種跳轉方式都用不到301跳轉的好處。
使用301跳轉有啥好處呢?
SEO(搜尋引擎優化)中提到一點:如果我們把一個地址採用301跳轉方式跳轉的話,搜尋引擎會把老地址的PageRank等資訊帶到新地址,同時在搜尋引擎索引庫中徹底廢棄掉原先的老地址。
如何編碼實現301跳轉呢?
Response.Status = "301 Moved Permanently"; Response.AddHeader("Location","..."); //這裡的 ... 表示你要跳轉去的頁面。
相關學習推薦:
以上就是Http狀態:301與302跳轉有啥區別?使用時有啥好處或者問題?的詳細內容,更多請關注TW511.COM其它相關文章!