301與302 頁面返回代碼匯總


JSP/Servlet編程中response.sendRedirect方法就是使用HTTP協議中的重定向機制。它與JSP中的<jsp:forward …>的區別在於后者是在服務器中實現頁面的跳轉,也就是說應用容器加載了所要跳轉的頁面的內容並返回給客戶端;而前者是返回一個狀態碼,這些狀態碼的可能值見下表,然后客戶端讀取需要跳轉到的頁面的URL並重新加載新的頁面。就是這樣一個過程,所以我們編程的時候就要通過HttpMethod.getStatusCode()方法判斷返回值是否為下表中的某個值來判斷是否需要跳轉。如果已經確認需要進行頁面跳轉了,那么可以通過讀取HTTP頭中的location屬性來獲取新的地址。

狀態碼
對應 HttpServletResponse 的常量
詳細描述
301
SC_MOVED_PERMANENTLY
頁面已經永久移到另外一個新地址
302
SC_MOVED_TEMPORARILY
頁面暫時移動到另外一個新的地址
303
SC_SEE_OTHER
客戶端請求的地址必須通過另外的 URL 來訪問
307
SC_TEMPORARY_REDIRECT
同 SC_MOVED_TEMPORARILY

 

301的含義是“永久重定向”,而302的含義是“臨時重定向”
301 代表永久性轉移是網頁更改地址后對搜索引擎友好的最好方法,只要不是暫時搬移的情況,都建議使用301來做轉址。

由於搜索引擎排名算法只是程序而不是人,在遇到302重定向的時候,並不能像人一樣的去准確判定哪一個網址更適當,這就造成了網址URL劫持的可能性。也就是說,一個不道德的人在他自己的網址A做一個302重定向到你的網址B,出於某種原因, Google搜索結果所顯示的仍然是網址A,但是所用的網頁內容卻是你的網址B上的內容,這種情況就叫做網址URL劫持。你辛辛苦苦所寫的內容就這樣被別人偷走了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM