I'm not sure if this function in CURL just strips the response body out but still load it fully. Is that true? I don't want to waste bandwidth, I just want the headers.
-
1CURLOPT_NOBODY changes the http verb into HEAD which just gets headers. From the related links on the right: http://stackoverflow.com/questions/1378915/header-only-retreival-in-php-via-curl and http://stackoverflow.com/questions/1849723/handle-curl-headers-before-downloading-body – Fanis Hatzidakis Sep 24 '10 at 18:44
3 Answers
CURLOPT_NOBODY
will send a HEAD
request to web server. The server should respond with just the HTTP headers and no body content.
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.

- 37,828
- 23
- 98
- 129
-
The server *should*, but in some cases (e.g. dynamic generated content) it might *not* do that. – David Refoua Nov 29 '16 at 07:35
It will only load the headers, it won't load the body of the requested document.

- 14,861
- 4
- 41
- 44
As you can see in official doc, It will not download the body if you enable it
https://curl.haxx.se/libcurl/c/CURLOPT_NOBODY.html
DESCRIPTION A long parameter set to 1 tells libcurl to not include the body-part in the output when doing what would otherwise be a download. For HTTP(S), this makes libcurl do a HEAD request. For most other protocols it means just not asking to transfer the body data.
Enabling this option means asking for a download but without a body.

- 6,181
- 6
- 62
- 106