Commit 000a13e2 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

expand the CURLOPT_POSTREDIR explanation

parent 03ca98b0
Loading
Loading
Loading
Loading
+12 −5
Original line number Original line Diff line number Diff line
@@ -739,13 +739,20 @@ redirections have been followed, the next redirect will cause an error
Setting the limit to 0 will make libcurl refuse any redirect. Set it to -1 for
Setting the limit to 0 will make libcurl refuse any redirect. Set it to -1 for
an infinite number of redirects (which is the default)
an infinite number of redirects (which is the default)
.IP CURLOPT_POSTREDIR
.IP CURLOPT_POSTREDIR
A parameter set to 1 tells the library to respect RFC 2616/10.3.2 and not
Pass a bitmask to control how libcurl acts on redirects after POSTs that get a
convert POST requests into GET requests when following a 301 redirection. The
301 or 302 response back.  A parameter with bit 0 set (value
non-RFC behaviour is ubiquitous in web browsers, so the library does the
\fBCURL_REDIR_POST_301\fP) tells the library to respect RFC 2616/10.3.2 and
not convert POST requests into GET requests when following a 301
redirection. Setting bit 1 (value CURL_REDIR_POST_302) makes libcurl maintain
the request method after a 302 redirect. CURL_REDIR_POST_ALL is a convenience
define that sets both bits.

The non-RFC behaviour is ubiquitous in web browsers, so the library does the
conversion by default to maintain consistency. However, a server may requires
conversion by default to maintain consistency. However, a server may requires
a POST to remain a POST after such a redirection. This option is meaningful
a POST to remain a POST after such a redirection. This option is meaningful
only when setting \fICURLOPT_FOLLOWLOCATION\fP.  (Added in 7.17.1)
only when setting \fICURLOPT_FOLLOWLOCATION\fP.  (Added in 7.17.1) (This
(This option was known as CURLOPT_POST301 up to 7.19.0)
option was known as CURLOPT_POST301 up to 7.19.0 as it only supported the 301
way before then)
.IP CURLOPT_PUT
.IP CURLOPT_PUT
A parameter set to 1 tells the library to use HTTP PUT to transfer data. The
A parameter set to 1 tells the library to use HTTP PUT to transfer data. The
data should be set with \fICURLOPT_READDATA\fP and \fICURLOPT_INFILESIZE\fP.
data should be set with \fICURLOPT_READDATA\fP and \fICURLOPT_INFILESIZE\fP.