Http

302 與 303 的範例

  • June 9, 2020

a302303response 和有什麼不一樣?

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

  • 10.3.3 302 找到
  • 10.3.4 303 見其他

這些是可互換的,還是為什麼要使用一個而不是另一個?您能否提供一個案例,說明何時使用(而另一個不使用)?

您連結到的頁面上的描述似乎很好地描述了它們的預期目的:

302 重定向表示重定向是臨時的——客戶端應該在​​以後的請求中檢查原始 URL。

303 重定向意味著將POST請求重定向到GET資源(否則,客戶端假定新位置的請求方法與原始資源的請求方法相同)。

如果您將客戶端重定向為 Web 應用程序的一部分,但希望它們始終從 Web 應用程序開始(例如,URL 縮短器),那麼 302 重定向似乎是有意義的。當您從客戶端接收數據(例如,表單送出)並且您希望將它們重定向到要使用而不是POST檢索的新網頁(例如,標準頁面請求)時,使用 303 重定向。GET``POST

但是請參閱狀態程式碼定義中的此註釋——大多數客戶端將對 302 或 303 執行相同的操作:

 Note: RFC 1945 and RFC 2068 specify that the client is not allowed
 to change the method on the redirected request.  However, most
 existing user agent implementations treat 302 as if it were a 303
 response, performing a GET on the Location field-value regardless
 of the original request method. The status codes 303 and 307 have
 been added for servers that wish to make unambiguously clear which
 kind of reaction is expected of the client.

引用自:https://serverfault.com/questions/391181