回答
這取決於你的目的。
301表示「這不是正確的URL,在其他地方查看並使用記住其他URL更好;不要回到這裏!「。
302說:「這是你應該繼續使用的正確的URL,但實際上讓內容看起來在其他地方」。
303就像302,但專門用於表單提交後的重定向。
如果您的目的是一個網址縮寫,那麼303並不真正相關。它仍然可以工作,但是沒有提供超過正常的302。對於一個URL縮短的人,我會說301會是最合適的,因爲另一個URL是'真正'的。說302是試圖保持地址的所有權和任何SEO動力所造成的自己的使用:有點粗魯,但也許你想要粗魯。
看看HTTP 1.1 Status Code definitions。不同的地位代碼意味着不同的含義,因此鼓勵不同的行爲。嘗試使用最符合你的用例的代碼。
不同的狀態代碼有不同的含義。 HTTP規範描述他們:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
301 - 移動永久(和更改
302 - 這裏找到
303 - 在這裏找到您的回覆,但使用GET,即使你用POST
開始了例如,如果我們考慮一個Atom提要,該提要的URL由於某種原因而發生了更改(可能它正在轉移到Amazon S3或其他某些方面)。給定301結果,提要閱讀器應該注意,提要已移動並更新它是訂閱的,給定一個302,它會從它的新位置得到提要,但是碰到了o每次檢查更新時,riginal服務器都會查找原始URI。 (在這種情況下303會很愚蠢)。
閱讀http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html爲答案。
10.3.2 301永久移動
請求的資源已被分配了一個新的永久性URI,該資源的任何將來參考應該使用返回的URI之一。在可能的情況下,具有鏈接編輯功能的客戶端應自動將對Request-URI的引用重新鏈接到服務器返回的一個或多個新引用。除非另有說明,否則此響應可緩存。
10.3.3 302實測值
請求的資源下不同的URI臨時駐留。由於重定向有時可能會發生變化,因此客戶端應該繼續使用Request-URI來處理將來的請求。如果由Cache-Control或Expires標頭字段指示,此響應僅可緩存。
- 1. 使用MockMvc測試重定向URL的HTTP狀態代碼
- 2. 用於基於位置的重定向的HTTP狀態代碼
- 3. 可以重新使用416狀態碼的HTTP狀態碼嗎?
- 4. 得到一個HTTP狀態代碼重定向
- 5. 要返回哪個HTTP響應狀態
- 6. 要使用哪種狀態碼?
- 7. 語言重定向的HTTP狀態代碼
- 8. 返回重定向CouchDB中的HTTP狀態碼顯示功能
- 9. 重定向頁面本身 - 什麼是正確的http狀態碼使用
- 10. HTTP狀態碼「8」無效,在重定向時出現問題
- 11. 在asp.net重定向後獲取http狀態碼
- 12. 將用戶重定向到特定國家時應發送哪個HTTP狀態碼?
- 13. 要使用哪種重定向類型?
- 14. Django重定向狀態代碼錯誤
- 15. CakePHP重定向狀態碼404
- 16. Coldfusion重定向頁面狀態碼410
- 17. 如何使用NET:HTTP獲取重定向的狀態碼?
- 18. 使用curl獲取最終的重定向狀態代碼PHP
- 19. 用於功能重定向的HTTP狀態
- 20. HTTP 2中引入了HTTP狀態碼308(「永久重定向」)嗎?
- 21. 強制http/https:如何檢測https以及重定向時要發送哪個狀態頭?
- 22. 捕獲HTTP狀態300用於重定向下載鏈接
- 23. 要返回域數據錯誤的哪個HTTP狀態?
- 24. Vuex狀態重定向
- 25. htacess重定向到子文件夾導致太多http狀態301重定向
- 26. 使用HTTP-AUTH重定向?
- 27. 任何WSGI中間件在特定狀態碼上進行HTTP重定向?
- 28. HTTP管道中第一個可用的HTTP狀態碼在哪裏?
- 29. Response.Redirect HTTP狀態碼
- 30. HTTP狀態代碼
302完全符合我的要求(使用Cache-Control:private) – 2009-11-13 01:53:31