cURL supports formatted output for the details of the request ( see the cURL manpagefor details, under “-w, –write-out <format>” ). For our purposes we’ll focus just on the timing details that are provided.
Step one: create a new file, curl-format.txt, and paste in:
Step two, make a request:
curl -w "@curl-format.txt" -o /dev/null -s http://wordpress.com/
What this does:
-w "@curl-format.txt"tells cURL to use our format file
-o /dev/nullredirects the output of the request to /dev/null
-stells cURL not to show a progress meter
http://wordpress.com/is the URL we are requesting
And here is what you get back:
Jon was looking specifically at time to first byte, which is the time_starttransfer line. The other timing details include DNS lookup, TCP connect, pre-transfer negotiations, redirects (in this case there were none), and of course the total time.
The format file for this output provides a reasonable level of flexibility, for instance you could make it CSV formatted for easy parsing. You might want to do that if you were running this as a cron job to track timing details of a specific URL.
For details on the other information that cURL can provide using
-w check out thecURL manpage.