mirror of
https://github.com/moparisthebest/curl
synced 2024-12-24 17:18:48 -05:00
c0e139a60d
Prior to this change if there was a 303 reply to a PUT request then the subsequent request to respond to that redirect would also be a PUT. It was determined that was most likely incorrect based on the language of the RFCs. Basically 303 means "see other" resource, which implies it is most likely not the same resource, therefore we should not try to PUT to that different resource. Refer to the discussions in #5237 and #5248 for more information. Fixes https://github.com/curl/curl/issues/5237 Closes https://github.com/curl/curl/pull/5248
78 lines
1.1 KiB
Plaintext
78 lines
1.1 KiB
Plaintext
<testcase>
|
|
<info>
|
|
<keywords>
|
|
HTTP
|
|
HTTP PUT
|
|
followlocation
|
|
</keywords>
|
|
</info>
|
|
#
|
|
# Server-side
|
|
<reply>
|
|
<data>
|
|
HTTP/1.1 303 OK swsclose
|
|
Location: moo.html&testcase=/15240002
|
|
Connection: close
|
|
|
|
</data>
|
|
<data2>
|
|
HTTP/1.1 200 OK swsclose
|
|
Location: this should be ignored
|
|
Connection: close
|
|
|
|
body
|
|
</data2>
|
|
<datacheck>
|
|
HTTP/1.1 303 OK swsclose
|
|
Location: moo.html&testcase=/15240002
|
|
Connection: close
|
|
|
|
HTTP/1.1 200 OK swsclose
|
|
Location: this should be ignored
|
|
Connection: close
|
|
|
|
body
|
|
</datacheck>
|
|
</reply>
|
|
|
|
#
|
|
# Client-side
|
|
<client>
|
|
<server>
|
|
http
|
|
</server>
|
|
<name>
|
|
HTTP PUT with 303 redirect
|
|
</name>
|
|
<command>
|
|
http://%HOSTIP:%HTTPPORT/blah/1524 -L -T log/upload1524.txt
|
|
</command>
|
|
<file name="log/upload1524.txt">
|
|
moo
|
|
</file>
|
|
</client>
|
|
|
|
#
|
|
# Verify data after the test has been "shot"
|
|
<verify>
|
|
<strip>
|
|
^User-Agent:.*
|
|
</strip>
|
|
<protocol nonewline="yes">
|
|
PUT /blah/1524 HTTP/1.1
|
|
Host: %HOSTIP:%HTTPPORT
|
|
Accept: */*
|
|
Content-Length: 4
|
|
Expect: 100-continue
|
|
|
|
moo
|
|
GET /blah/moo.html&testcase=/15240002 HTTP/1.1
|
|
User-Agent: this should be ignored
|
|
Host: %HOSTIP:%HTTPPORT
|
|
Accept: */*
|
|
|
|
|
|
</protocol>
|
|
</verify>
|
|
</testcase>
|