Bug 22532

Summary: [Mac] 307 redirect resets method to GET
Product: WebKit Reporter: Adam Barth <abarth>
Component: FormsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED INVALID    
Severity: Normal CC: ap, beidson, collinj, julian.reschke, mrowe, sam
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
URL: http://crypto.stanford.edu/~collinj/test/redirection/

Description Adam Barth 2008-11-27 11:30:35 PST
According to the HTTP RFC at http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html, an HTTP 307 redirect should keep the current HTTP method.  However, Safari resets the method to GET.  I haven't debugged this enough to know whether this is a WebKit bug or a CFNetwork bug.

Test case:
  http://crypto.stanford.edu/~collinj/test/redirection/
Comment 1 Alexey Proskuryakov 2008-11-28 01:38:27 PST
See also: bug 11118, bug 11119.
Comment 2 Darin Fisher (:fishd, Google) 2008-11-28 14:16:44 PST
The redirect request is constructed by the ResourceHandle implementation, so this is likely a bug with the underlying network library.
Comment 3 Julian Reschke 2010-09-21 06:59:18 PDT
Note that this is still the case in Safari 5.0.2, although it may be limited to synchronous XHR.
Comment 4 Adam Barth 2011-07-18 13:44:51 PDT
This line of code appears to do this work:

http://trac.webkit.org/browser/trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm?rev=90834#L695

Perhaps we're not hitting that line in synchronous requests?
Comment 5 Alexey Proskuryakov 2013-04-12 17:14:25 PDT
> The redirect request is constructed by the ResourceHandle implementation, so this is likely a bug with the underlying network library.

Yes, that's how we see it too.

<rdar://problem/10859411>/<rdar://problem/13625208>.