[英]What's the difference between HTTP 301 and 308 status codes?
HTTP 301
和308
狀態代碼有什么區別?
301
(永久移動):此請求和所有以后的請求都應定向到給定的URI。
308
(永久重定向):應使用另一個URI重復該請求和所有以后的請求。
他們似乎很相似。
301
, 302
和307
RFC 7231是HTTP / 1.1協議的語義和內容的當前參考,它定義了301
(永久移動)和302
(已找到)狀態碼,該狀態碼允許將請求方法從POST
更改為GET
。 該規范還定義了307
(臨時重定向)狀態碼,該狀態碼不允許將請求方法從POST
更改為GET
。
在下面查看更多詳細信息:
301
(永久移動)狀態碼表示已為目標資源分配了新的永久URI,以后對該資源的任何引用都應使用其中的一個URI。 [...]注意:由於歷史原因,用戶代理可以針對后續請求將請求方法從
POST
更改為GET
。 如果不希望出現這種情況,可以改用307
(臨時重定向)狀態代碼。
302
(已找到)狀態代碼指示目標資源臨時位於其他URI下。 由於重定向有時可能會更改,因此客戶端應繼續將有效請求URI用於將來的請求。 [...]注意:由於歷史原因,用戶代理可以針對后續請求將請求方法從
POST
更改為GET
。 如果不希望出現這種情況,可以改用307
(臨時重定向)狀態代碼。
307
(臨時重定向)狀態代碼指示目標資源臨時位於其他URI下,並且如果用戶代理執行到該URI的自動重定向,則它不得更改請求方法。 由於重定向會隨時間變化,因此客戶端應繼續將原始的有效請求URI用於將來的請求。 [...]注意:此狀態碼類似於
302
(已找到),不同之處在於它不允許將請求方法從POST
更改為GET
。 該規范沒有為301
(永久移動)定義任何等效的副本(但是RFC 7238為此定義了狀態碼308
(永久重定向))。
308
已創建RFC 7238來定義308
(永久重定向)狀態代碼,該狀態代碼與301
(永久移動)相似,但不允許將請求方法從POST
更改為GET
。
308
狀態代碼現在由RFC 7538 (已廢棄RFC 7238 )定義。
308
(永久重定向)狀態碼表示已為目標資源分配了新的永久URI,並且對該資源的任何將來引用都應使用隨附的URI中的一個。 具有鏈接編輯功能的客戶端應在可能的情況下自動將對有效請求URI的引用重新鏈接到服務器發送的一個或多個新引用。 [...]注意:此狀態碼類似於
301
(永久移動),不同之處在於它不允許將請求方法從POST
更改為GET
。
硒,我們有以下內容:
+-----------+-----------+
| Permanent | Temporary |
+------------------------------------------------------------+-----------+-----------+
| Allows changing the request method from POST to GET | 301 | 302 |
+------------------------------------------------------------+-----------+-----------+
| Doesn't allow changing the request method from POST to GET | 308 | 307 |
+------------------------------------------------------------+-----------+-----------+
Michael Kropat整理了一組決策圖 ,可幫助確定每種情況的最佳狀態代碼。 有關2xx
和3xx
狀態代碼,請參見以下內容:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.