mirror of https://github.com/moparisthebest/curl
CURLMOPT_PIPELINING.3: extended and clarified
Especially in regards to the multiplexing part.
This commit is contained in:
parent
ef5d3facd5
commit
a409b4b466
|
@ -5,7 +5,7 @@
|
||||||
.\" * | (__| |_| | _ <| |___
|
.\" * | (__| |_| | _ <| |___
|
||||||
.\" * \___|\___/|_| \_\_____|
|
.\" * \___|\___/|_| \_\_____|
|
||||||
.\" *
|
.\" *
|
||||||
.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
.\" *
|
.\" *
|
||||||
.\" * This software is licensed as described in the file COPYING, which
|
.\" * This software is licensed as described in the file COPYING, which
|
||||||
.\" * you should have received as part of this distribution. The terms
|
.\" * you should have received as part of this distribution. The terms
|
||||||
|
@ -22,24 +22,36 @@
|
||||||
.\"
|
.\"
|
||||||
.TH CURLMOPT_PIPELINING 3 "17 Jun 2014" "libcurl 7.37.0" "curl_multi_setopt options"
|
.TH CURLMOPT_PIPELINING 3 "17 Jun 2014" "libcurl 7.37.0" "curl_multi_setopt options"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
CURLMOPT_PIPELINING \- enable/disable HTTP pipelining
|
CURLMOPT_PIPELINING \- enable HTTP pipelining and multiplexing
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PIPELINING, long bits);
|
CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PIPELINING, long bitmask);
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
Set the \fBbits\fP parameter to 1 to make libcurl use HTTP pipelining for
|
Pass in the \fBbitmask\fP parameter to instruct libcurl to enable HTTP
|
||||||
HTTP/1.1 transfers done using this multi handle, as far as possible. This
|
pipelining and/or HTTP/2 multiplexing for this multi handle.
|
||||||
means that if you add a second request that can use an already existing
|
|
||||||
connection, the second request will be \&"piped" on the same connection rather
|
|
||||||
than being executed in parallel.
|
|
||||||
|
|
||||||
When using pipelining, there are also several other related options that are
|
When enabled, libcurl will attempt to use those protocol features when doing
|
||||||
interesting to tweak and adjust to alter how libcurl spreads out requests on
|
parallel requests to the same hosts.
|
||||||
different connections or not etc.
|
|
||||||
|
|
||||||
Starting in 7.43.0, the \fBbits\fP parameter's bit 1 also has a meaning and
|
For pipelining, this means that if you add a second request that can use an
|
||||||
libcurl is now offering symbol names for the bits:
|
already existing connection, the second request will be \&"piped" on the same
|
||||||
|
connection rather than being executed in parallel.
|
||||||
|
|
||||||
|
For multiplexing, this means that follow-up requests can re-use an existing
|
||||||
|
connection and send the new request multiplexed over that at the same time as
|
||||||
|
other transfers are already done of that single connection.
|
||||||
|
|
||||||
|
There are several other related options that are interesting to tweak and
|
||||||
|
adjust to alter how libcurl spreads out requests on different connections or
|
||||||
|
not etc.
|
||||||
|
|
||||||
|
Before 7.43.0, this option was set to 1 and 0 to enable and disable HTTP/1.1
|
||||||
|
pipelining.
|
||||||
|
|
||||||
|
Starting in 7.43.0, \fBbitmask\fP's second bit also has a meaning, and you can
|
||||||
|
ask for pipelining and multiplexing independently of each other by toggling
|
||||||
|
the correct bits.
|
||||||
.IP CURLPIPE_NOTHING (0)
|
.IP CURLPIPE_NOTHING (0)
|
||||||
Default, which means doing no attempts at pipelining or multiplexing.
|
Default, which means doing no attempts at pipelining or multiplexing.
|
||||||
.IP CURLPIPE_HTTP1 (1)
|
.IP CURLPIPE_HTTP1 (1)
|
||||||
|
@ -49,7 +61,7 @@ connections that are already established and in use to hosts.
|
||||||
If this bit is set, libcurl will try to multiplex the new transfer over an
|
If this bit is set, libcurl will try to multiplex the new transfer over an
|
||||||
existing connection if possible. This requires HTTP/2.
|
existing connection if possible. This requires HTTP/2.
|
||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
0 (off)
|
0 (both pipeline and multiplexing are off)
|
||||||
.SH PROTOCOLS
|
.SH PROTOCOLS
|
||||||
HTTP(S)
|
HTTP(S)
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
|
|
Loading…
Reference in New Issue