I tempi di risposta di un sito Web possono avere un grande impatto nell'esperienza di navigazione dell'utente. A questo proposito oggi parleremo di cURL come strumento utile per eseguire dei test di caricamento direttamente dalla shell del Terminale. Gli utenti Linux conoscono cURL in quanto preinstallato in diverse distribuzioni, è un tool molto versatile e può adattarsi agli usi più disparati, vediamo quindi come impiegarlo per misurare la velocità di caricamento di un sito Internet.
La sintassi richiesta dalla nostra istruzione è molto semplice:
curl -s -w 'Test del tempo di risposta per :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null http://www.google.com
In questo caso possiamo vedere come il sito target dell'analisi sia "Google.com" che, ovviamente, ci restituirà dei valori molto bassi. Le varie opzioni inserite nel comando serviranno per indicare a cURL di mostrarci 5 valori che permettono di verificare i tempi di risposta:
- 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.
Se si desidera esaminare un sito su connessione protetta da HTTPS basterà utilizzare la seguente sintassi:
$ curl -s -w 'Test del tempo di risposta per :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nAppCon Time:\t\t%{time_appconnect}\nRedirect Time:\t\t%{time_redirect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://www.google.com
Come possiamo vedere, in questo caso abbiamo passato due nuovi parametri a cURL, ovvero:
- 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.
Tramite i valori restituiti si può verificare se le performance sono in linea con gli standard previsti o se è necessario intervenire per il miglioramento delle prestazioni.
Via TecMint