Is there any way I could get info such as how long did it take to connect to a remote server, time taken to receive the first byte of response, and the time taken to download the whole file?
I’m trying to create something like what Pingdom does.

(source: pingdom.com)
You can do it with sockets, like this: