Sortix
Sortix Download Manual Development Source Code News Blog More
current nightly

Sortix volatile manual

This manual documents Sortix volatile, a development build that has not been officially released. You can instead view this document in the latest official manual.

CURLOPT_HEADER(3) Library Functions Manual CURLOPT_HEADER(3)

NAME

CURLOPT_HEADER - pass headers to the data stream

SYNOPSIS


#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HEADER, long onoff);

DESCRIPTION

Pass the long value onoff set to 1 to ask libcurl to include the headers in the write callback ( CURLOPT_WRITEFUNCTION(3)). This option is relevant for protocols that actually have headers or other meta-data (like HTTP and FTP).
 
When asking to get the headers passed to the same callback as the body, it is not possible to accurately separate them again without detailed knowledge about the protocol in use.
 
Further: the CURLOPT_WRITEFUNCTION(3) callback is limited to only ever get a maximum of CURL_MAX_WRITE_SIZE bytes passed to it (16KB), while a header can be longer and the CURLOPT_HEADERFUNCTION(3) supports getting called with headers up to CURL_MAX_HTTP_HEADER bytes big (100KB).
 
It is often better to use CURLOPT_HEADERFUNCTION(3) to get the header data separately.
 
While named confusingly similar, CURLOPT_HTTPHEADER(3) is used to set custom HTTP headers.

DEFAULT

0

PROTOCOLS

This functionality affects ftp, http, imap, pop3 and smtp

EXAMPLE


int main(void)
{
CURL *curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");

curl_easy_setopt(curl, CURLOPT_HEADER, 1L);

curl_easy_perform(curl);
}
}

AVAILABILITY

Added in curl 7.1

RETURN VALUE

Returns CURLE_OK.

SEE ALSO

CURLOPT_HEADERFUNCTION(3), CURLOPT_HTTPHEADER(3)
2025-05-14 libcurl
Copyright 2011-2025 Jonas 'Sortie' Termansen and contributors.
Sortix's source code is free software under the ISC license.
#sortix on irc.sortix.org
@sortix_org