1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-24 17:18:48 -05:00
curl/tests/data/test1524
Jay Satiro c0e139a60d transfer: Switch PUT to GET/HEAD on 303 redirect
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
2020-04-22 17:56:17 -04:00

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>