預期POST的正確行爲是什麼=> 302重定向到GET?什麼是預期的HTTP POST => 302重定向到GET的正確行爲?
在Chrome(可能每一個瀏覽器最),我POST之後(該要我重定向資源),我收到一個302重定向,瀏覽器會自動在302位置的GET。這甚至是well known pattern。但是我閱讀規範的方式,似乎表明這不應該發生。
如果接收響應302個的狀態碼比 GET或HEAD,用戶代理其他的請求必須不能自動重定向的 請求除非它可以被確認用戶,因爲這可能會改變發出請求的條件。
而小提琴手正顯示出:以上
REQUEST 1: POST URLA
RESPONSE 1: 302 redirect to URLB
REQUEST 2: GET URLB
的部分似乎是說,瀏覽器不應該讓GET請求?我錯過了什麼?
- 前面的東西在規範中,使這部分無關緊要
- 我理解的自動重定向是錯誤的(以及做了Chrome瀏覽器的GET並沒有真正自動重定向)
- 我證實了這一點認識作爲用戶
- 還有其他?
abarnet:請說明您是 「舊的瀏覽器」 的意思。 –
@JulianReschke:我不完全清楚。如果我不得不猜測,我猜這個年份是在IE6和FF1.9左右。但請記住,桌面瀏覽器(和WebKit移動瀏覽器)不是唯一的用戶代理;有很多人在使用其他瀏覽器的設備,手動編碼的Web服務客戶端或者抓取工具等。 – abarnert
@JulianReschke:另外,我應該提到303和307只在HTTP/1.1中。有很多服務器和緩存(以及一些用戶代理),無法處理1.1或禁用它。同時,我剛剛發現[博客文章](http://blogs.msdn.com/b/ieinternals/archive/2011/08/19/understanding-the-impact-of-redirect-response-status-codes-on- http-methods-like-head-get-post-and-delete.aspx)來自與看起來相關的IE團隊。 – abarnert