[英]Difference between HTTP redirect codes
各種HTTP 3XX重定向代碼之間的差異對我來說並不清楚。 是的,我已經閱讀了規范,但這里的標准和實際做法之間似乎存在一些差異。
301
重定向代碼似乎足夠清楚:這意味着資源被永久移動到另一個URI,未來的請求應該使用該URI。
307
重定向代碼似乎也很清楚:它意味着重定向是臨時的,未來的請求仍應使用原始URI。
但是我不知道302
和303
之間有什么區別,或者為什么它們中的任何一個與301
真的不同。 似乎302
原本打算成為臨時重定向(如307
),但在實踐中,大多數瀏覽器都將其視為303
。 但是303
和301
之間的區別是什么? 301
應該意味着重定向更永久嗎?
如果您有選擇,我個人建議避免使用302。 許多客戶在遇到302時都不遵守規范。對於臨時重定向,您應該使用303或307,具體取決於您對非GET請求的行為類型。 除非您需要POST / PUT / DELETE上的備用行為,否則首選307到303。
303和307之間的區別是:
303 :見其他。 請求已正確接收,但應使用重定向網址上的GET檢索結果。
307 :臨時重定向。 應將整個請求重定向到新網址。 任何帖子數據都應該重新發布。
請注意, 302的行為是307,但大多數瀏覽器都將其實現為303的行為(當時兩者都不存在)。 因此,引入了這兩個新代碼來代替302。
301和303之間的區別:
301 :移動文檔。 未來的請求應該使用新的URL。 這個網址已經過時了。
注意:請注意此代碼。 瀏覽器和代理往往會在其上應用非常激進的緩存,因此如果您使用301回復,則可能需要很長時間才能重新訪問該網址。
303 :正確接收請求。 處理任何PUT請求。 可以從重定向URL檢索生成的文檔 。 未來的請求仍應轉到原始網址。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.