This blog post is 7 years old! Most likely, its content is outdated. Especially if it's technical.
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
- Previous:
- An AngularJS directive with itself as the attribute 03 September 2014
- Next:
- Premailer on Python 3 08 October 2014
- Related by category:
- How to create-react-app with Docker 17 November 2017 Linux
- Be very careful with your add_header in Nginx! You might make your site insecure 11 February 2018 Linux
- Linux tip: du --max-depth=1 27 September 2007 Linux
- set -ex - The most useful bash trick of the year 31 August 2014 Linux
- Run something forever in bash until you want to stop it 13 February 2018 Linux
- Related by keyword:
- How post JSON with curl to an Express app 15 April 2020
- How to test if gzip is working on your site or app 20 August 2015
-
redirect-chain - Getting a comfortable insight input URL redirects history 14 February 2020
- How to NOT start two servers on the same port 11 June 2018
- Interesting lesson learnt on shortcut taking in usability 02 August 2007
I 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.