I, multiple times per day, find myself wanting to find out what headers I get back on a URL but I don't care about the response payload. The command to use then is:
curl -v https://www.peterbe.com/ > /dev/null
That'll print out all the headers sent and received. Nice and crips.
So because I type this every day I made it into a shortcut script
cd ~/bin echo '#!/bin/bash > set -x > curl -v "$@" > /dev/null > ' > c chmod +x c
If it's not clear what the code looks like, it's this:
#!/bin/bash
set -x
curl -v "$@" > /dev/null
Now I can just type:
c https://www.peterbe.com
Or if I want to add some extra request headers for example:
c -H 'User-Agent: foobar' https://www.peterbe.com
Comments
Post your own commentI did that a lot but now I just `pip install --user httpie`. It has the nice default of not dumping binary data to the console and pretty-printing text responses (no more compressed HTML or JSON blobs) and "http --print h …" will always print only the headers.
curl -I …
The server might respond differently if given a HEAD request.
`curl -i`, doesn't default to HEAD and includes headers in the output.
Peter, thanks for the post. What's the difference you get from the above as opposed to running curl -v -I http://www.peterbe.com/ ?
First of all, the difference is that "curl -v" is 7 characters. Just "c" is 1 character :)
This matters if you type it a lot.
Also, the -I means it does a HEAD request and the server might respond differently. For example the Content-Length header might be wrong/different.