Jakie zachowanie oczekuje się po przekierowaniu POST => 302 do GET?Jakie zachowanie oczekujesz od przekierowania HTTP POST => 302 do GET?
W chrome (i prawdopodobnie najbardziej każdej przeglądarce), po I POST (do zasobu, który chce, żebym przekierował) i otrzymuję przekierowanie 302, przeglądarka automatycznie wydaje GET w 302 lokalizacji. Jest to nawet well known pattern. Ale sposób, w jaki czytam specyfikację, zdaje się sugerować, że tak się nie stanie.
Jeśli pojawi się kod 302 stanu w odpowiedzi na wniosek innego niż GET lub HEAD, agent użytkownika NIE automatycznie przekierować wniosek chyba może być potwierdzona przez użytkownik, ponieważ może to zmienić warunki, w których żądanie zostało wysłane.
A Skrzypek pokazuje: powyżej
REQUEST 1: POST URLA
RESPONSE 1: 302 redirect to URLB
REQUEST 2: GET URLB
Sekcja zdaje się mówić, że przeglądarka nie powinno sprawić, że żądania GET? czego mi brakuje?
- Coś wcześniej w specyfikacji, które sprawia, że ten odcinek nieistotnych
- moje rozumienie automatycznie przekierować jest źle (a przeglądarka chrom, że zrobił to naprawdę nie GET została automatycznie przekierowanie)
- Moje rozumienie potwierdziła jako użytkownik
- Coś jeszcze?
abarnet: proszę wyjaśnić co masz na myśli przez "starych przeglądarek". –
@JulianReschke: Nie wiem dokładnie. Gdybym miał zgadywać, zgaduję, że rocznik jest w okolicach IE6 i FF 1.9. Pamiętaj jednak, że przeglądarki komputerowe (i przeglądarki mobilne WebKit) nie są jedynymi użytkownikami; jest mnóstwo ludzi używających innych urządzeń, które mają w nich przeglądarki, ręcznie kodowane klienty usług internetowych lub narzędzia do skrobania, itp. – abarnert
@JulianReschke: Powinienem też wspomnieć, że 303 i 307 są tylko w HTTP/1.1. Istnieje wiele serwerów i pamięci podręcznych (i niektórych programów użytkownika), które nie mogą obsłużyć wersji 1.1, lub wyłączyć ją. Tymczasem właśnie znalazłem [wpis na blogu] (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) z zespołu IE, który wygląda na trafny. – abarnert