0

Is HTTP 303 acceptable for other HTTP methods?我們確定HTTP 303可以用於其他HTTP方法。服務器在重定向之前是否必須執行操作?

Post/Redirect/Get模式要求服務器在返回HTTP 303之前執行操作。 HTTP PUTDELETE對於此類重定向和其他類型的重定向也是如此? 是否需要服務器在重定向之前執行操作?或者它可以假設客戶端會根據需要在規範URL上重複請求?

當您考慮重定向經常用於負載平衡時,這會變得更加有趣。

回答

0

報價RESTful Web Services頁378:

303( 「查看其它」)

的請求已被處理,但代替服務器發送一個響應文檔, 它發送客戶端響應文檔的URI。這可能是一個靜態的狀態消息的URI,或者是一些更有趣的資源的URI。

幾頁之後......

307(「臨時重定向」)

請求尚未處理,因爲所請求的資源不在家:這是 位於在一些其他的URI。客戶端應該重新提交請求到另一個URI。 對於GET請求,如果請求的唯一內容是服務器發送表示,則此狀態代碼與to 303 (「See Other」)相同。 307GET的反應良好的典型情況是,服務器想要將客戶端發送到鏡像站點。但是對於POST, PUT, and DELETE請求,如果服務器需要採取一些響應請求的 操作,則此狀態代碼與303顯着不同。 響應於POST, PUT, or DELETE的A 303意味着該操作已成功 ,但響應實體主體未與此請求一起發送。如果客戶端 需要響應實體主體,則需要向另一個URI發出GET請求。 A 307POST, PUT, or DELETE的響應意味着服務器甚至沒有嘗試 來執行操作。客戶端需要將整個請求重新提交到 的Location標頭中的URI。

類比可能會有幫助。你去一家藥店開一張處方來填充。 A 303是 藥劑師說:「我們已經填補了您的處方。轉到下一個窗口挑選 用藥。「A 307是藥劑師說的」我們無法填寫該處方。前往 去隔壁的藥房。「

相關問題