簡介
302 Found,原始描述短語為 Moved Temporarily,是HTTP協定中的一個狀態碼(Status Code)。可以簡單的理解為該資源原本確實存在,但已經被 臨時改變了位置;換而言之,就是請求的資源暫時駐留在不同的URI下,故而除非特別指定了快取頭部指示,該狀態碼不可快取。
對於伺服器,通常會給瀏覽器傳送HTTP Location頭部來重定向到新的新位置。
定義
根據定義,該回響代碼的使用場景是,請求的資源暫時駐留在不同的URI下。
其特徵被定義為:
•客戶端收到的新的 URI,不是原始請求資源的替代引用。
•只有當伺服器發出 Cache-Control 或 Expires 頭欄位進行指示,此回響才能被快取,否則不能被快取。
•臨時URI應該由回響頭部中的 Location 欄位給出。
•除非請求方法是 HEAD ,否則回響的實體應該包含一個帶有超連結到新的URI的短 HTML 注釋。
•如果在除 GET 或 HEAD 兩種請求方法之外的請求時,接收到302狀態碼,客戶端不得自動重定向請求,除非用戶可以確認;否則可能會更改發出請求的條件。
•如果一個客戶端有連結編輯能力,其應當把所有的引用連結重定向到新的URL上。
•重定向到新地址時,客戶端必須使用GET方法請求新地址。
客戶端實現問題
雖然RFC 1945和RFC 2068兩個規範不允許客戶端在重定向時改變請求的方法,但是很多現存的瀏覽器將302回響視作為303回響 ,並且逕自使用 GET 方式訪問在 Location 中規定的 URI,而無視原先請求的方法,這是不規範的實現。
因此狀態碼303和307被添加了進來,用以明確伺服器期待客戶端進行何種反應。
相關條目
•.htaccess
•HTTP狀態碼
•URL重寫
•HTTP 301
•HTTP 303
•HTTP 307
•HTTP Location