Testare la velocità di un sito web con cURL
Diciamo che ormai cURL non ha più bisogno di presentazioni!
Oggi lo usiamo per calcolare il tempo di caricamento di una pagina.
Cominciamo con il protocollo HTTP:
$ curl -s -w 'Test per :%{url_effective}nn
Lookup Time:tt%{time_namelookup}n
Connect Time:tt%{time_connect}n
Pre-transfer Time:t%{time_pretransfer}n
Start-transfer Time:t%{time_starttransfer}nn
Total Time:tt%{time_total}n' -o /dev/null http://www.google.com
Test per :http://www.google.com/
Lookup Time: 0,004123
Connect Time: 0,020027
Pre-transfer Time: 0,020044
Start-transfer Time: 0,036484
Total Time: 0,036511
Ho spezzato il comando per vederlo meglio, ma va scritto tutto su una riga ovviamente.
Le opzioni passate a cURL sono:
- time_namelookup: indica il tempo richiesto per la name resolution
- time_connect: segnala il tempo impiegato per la connessione TCP al server
- time_pretransfer: evidenzia il tempo impiegato per iniziare il trasferimento dei file
- time_starttransfer: mostra il tempo che impiega il primo byte ad essere trasferito
- time_total: restituisce il dato relativo al tempo totale necessario per l'intera operazione
Per HTTPS:
$ curl -s -w 'Test per :%{url_effective}nn
Lookup Time:tt%{time_namelookup}n
Connect Time:tt%{time_connect}n
AppCon Time:tt%{time_appconnect}n
Redirect Time:tt%{time_redirect}n
Pre-transfer Time:t%{time_pretransfer}n
Start-transfer Time:t%{time_starttransfer}nn
Total Time:tt%{time_total}n' -o /dev/null https://www.google.com
Test per :https://www.google.com/
Lookup Time: 0,004150
Connect Time: 0,021870
AppCon Time: 0,088643
Redirect Time: 0,000000
Pre-transfer Time: 0,088716
Start-transfer Time: 0,107941
Total Time: 0,107987
Qui abbiamo aggiunto due opzioni:
- time_appconnect: indica il tempo impiegato prima che la connessione SSL inizi ad essere gestita
- time_redirect: mostra il tempo impiegato da tutti i redirection step prima che l'operazione sia conclusa
(Via TecMint).
Enjoy!
network curl
Commentami!