HTTP狀態碼302、303、307區別


HTTP狀態碼3XX表示重定向,表明瀏覽器需要執行某些特殊的處理以正確處理請求。

301 Moved Permanently 
永久性定向。該狀態碼表示請求的資源已被分配了新的URI,以后應使用資源現在所指的URI。

302 Found 
臨時性重定向。該狀態碼表示請求的資源已被分配了新的URI,希望用戶(本次)能使用新的URI訪問。和301相似,但302表示的資源不是永久移動,只是臨時性的。換句話說,已移動的資源對應的URI將來還有可能發生變化,比如,用戶把uri保存為書簽,但不會像301狀態碼出現時那樣更新書簽,而是仍舊保留返回302狀態碼的頁面對應的uri

303 See Other 
該狀態碼表示由於請求對應的資源存在着另一個URI,應使用GET方法定向獲取請求的資源,=, 
303和302狀態碼有着相同的功能,但是303明確表示客戶端應當采用get方法獲取資源,這點與302狀態碼有區別。 
比如,當使用post方法訪問CGI程序,其執行后的處理結果為希望客戶端能以get方法重定向到另一個uri上去時,返回303狀態碼。雖然302也可實現相同的功能,但這里使用302狀態碼是最理想的。

當301、302、303響應狀態碼返回時,幾乎所有瀏覽器都會把post改成get,並刪除請求報文內的主體,之后請求會自動再次發送。 
301、302標准是禁止將post方法改變成get方法的,但實際使用時大家都會這么做。

307 Temporary Redirect 
臨時重定向。該狀態碼與302有相同的含義。盡管302標准禁止post變化get,但實際使用時大家不遵守。 
307會遵照瀏覽器標准,不會從post變為get。但是對於處理響應時的行為,各種瀏覽器有可能出現不同的情況。

 


免責聲明!

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



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