Getting only response header from HTTP POST using cURL Getting only response header from HTTP POST using cURL curl curl

Getting only response header from HTTP POST using cURL


-D, --dump-header <file>       Write the protocol headers to the specified file.       This  option  is handy to use when you want to store the headers       that a HTTP site sends to you. Cookies from  the  headers  could       then  be  read  in  a  second  curl  invocation by using the -b,       --cookie option! The -c, --cookie-jar option is however a better       way to store cookies.

and

-S, --show-error       When used with -s, --silent, it makes curl show an error message if it fails.

and

-L/--location      (HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response      code), this option will make curl redo the request on the new place. If used together with -i/--include or -I/--head, headers from  all  requested      pages  will  be  shown.  When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different      host, it won’t be able to intercept the user+password. See also --location-trusted on how to change this. You can limit the amount of redirects to      follow by using the --max-redirs option.      When curl follows a redirect and the request is not a plain GET (for example POST or PUT), it will do the following request with a GET if the HTTP      response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following  request  using  the  same  unmodified      method.

from the man page. so

curl -sSL -D - www.acooke.org -o /dev/null

follows redirects, dumps the headers to stdout and sends the data to /dev/null (that's a GET, not a POST, but you can do the same thing with a POST - just add whatever option you're already using for POSTing data)

note the - after the -D which indicates that the output "file" is stdout.


The other answers require the response body to be downloaded. But there's a way to make a POST request that will only fetch the header:

curl -s -I -X POST http://www.google.com

An -I by itself performs a HEAD request which can be overridden by -X POST to perform a POST (or any other) request and still only get the header data.


The Following command displays extra informations

curl -X POST http://httpbin.org/post -v > /dev/null

You can ask server to send just HEAD, instead of full response

curl -X HEAD -I http://httpbin.org/

Note: In some cases, server may send different headers for POST and HEAD. But in almost all cases headers are same.