Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_HTTP_VERSION(3)	   curl_easy_setopt options    CURLOPT_HTTP_VERSION(3)

NAME
       CURLOPT_HTTP_VERSION - specify HTTP protocol version to use

SYNOPSIS
       #include	<curl/curl.h>

       CURLcode	curl_easy_setopt(CURL *handle, CURLOPT_HTTP_VERSION, long ver-
       sion);

DESCRIPTION
       Pass version a long, set	to one of the values described below. They ask
       libcurl to use the specific HTTP	versions.

       Note that the HTTP version is just a request. libcurl will still	prior-
       itize to	re-use an existing connection so it might then re-use  a  con-
       nection using a HTTP version you	haven't	asked for.

       CURL_HTTP_VERSION_NONE
	      We  don't	care about what	version	the library uses. libcurl will
	      use whatever it thinks fit.

       CURL_HTTP_VERSION_1_0
	      Enforce HTTP 1.0 requests.

       CURL_HTTP_VERSION_1_1
	      Enforce HTTP 1.1 requests.

       CURL_HTTP_VERSION_2_0
	      Attempt HTTP 2 requests. libcurl will fall back to HTTP  1.1  if
	      HTTP 2 can't be negotiated with the server. (Added in 7.33.0)

	      The  alias CURL_HTTP_VERSION_2 was added in 7.43.0 to better re-
	      flect the	actual protocol	name.

       CURL_HTTP_VERSION_2TLS
	      Attempt HTTP 2 over TLS (HTTPS) only. libcurl will fall back  to
	      HTTP  1.1	 if  HTTP 2 can't be negotiated	with the HTTPS server.
	      For clear	text HTTP servers, libcurl will	 use  1.1.  (Added  in
	      7.47.0)

       CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE
	      Issue  non-TLS  HTTP  requests using HTTP/2 without HTTP/1.1 Up-
	      grade. It	requires prior	knowledge  that	 the  server  supports
	      HTTP/2  straight	away.  HTTPS requests will still do HTTP/2 the
	      standard way with	negotiated protocol version in the  TLS	 hand-
	      shake. (Added in 7.49.0)

       CURL_HTTP_VERSION_3
	      (Added  in  7.66.0) Setting this value will make libcurl attempt
	      to use HTTP/3 directly to	server given in	 the  URL.  Note  that
	      this  cannot gracefully downgrade	to earlier HTTP	version	if the
	      server doesn't support HTTP/3.

	      For more reliably	upgrading to HTTP/3, set the preferred version
	      to  something  lower and let the server announce its HTTP/3 sup-
	      port via Alt-Svc:. See CURLOPT_ALTSVC(3).

DEFAULT
       Since curl 7.62.0: CURL_HTTP_VERSION_2TLS

       Before that: CURL_HTTP_VERSION_1_1

PROTOCOLS
       HTTP

EXAMPLE
       CURL *curl = curl_easy_init();
       if(curl)	{
	 CURLcode ret;
	 curl_easy_setopt(curl,	CURLOPT_URL, "https://example.com/");
	 curl_easy_setopt(curl,	CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2TLS);
	 ret = curl_easy_perform(curl);
	 if(ret	== CURLE_HTTP_RETURNED_ERROR) {
	   /* an HTTP response error problem */
	 }
       }

AVAILABILITY
       Along with HTTP

RETURN VALUE
       Returns CURLE_OK	if HTTP	is supported, and CURLE_UNKNOWN_OPTION if not.

SEE ALSO
       CURLOPT_SSLVERSION(3),  CURLOPT_HTTP200ALIASES(3),   CURLOPT_HTTP09_AL-
       LOWED(3), CURLOPT_ALTSVC(3)

libcurl	7.72.0		      September	14, 2019       CURLOPT_HTTP_VERSION(3)

NAME | SYNOPSIS | DESCRIPTION | DEFAULT | PROTOCOLS | EXAMPLE | AVAILABILITY | RETURN VALUE | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=CURLOPT_HTTP_VERSION&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help