Ricerca nel sito web

Come testare la velocità di caricamento del sito Web nel terminale Linux


Il tempo di risposta di un sito Web può avere un grande impatto sull'esperienza dell'utente e, se sei uno sviluppatore web o semplicemente un amministratore di server particolarmente responsabile dell'organizzazione dei pezzi insieme, devi fare in modo che gli utenti non si sentano frustrato durante l'accesso al tuo sito, quindi c'è davvero "bisogno di velocità".

Leggi anche: httpstat – Uno strumento di statistica dei ricci per verificare le prestazioni del sito web

Questa guida ti mostrerà come testare il tempo di risposta di un sito web dalla riga di comando di Linux. Qui, mostreremo come controllare l'ora in secondi, ci vuole:

  • per eseguire la risoluzione dei nomi.
  • per la connessione TCP al server.
  • per iniziare il trasferimento del file.
  • per il primo byte da trasferire.
  • per l'operazione completa.

Inoltre, per i siti abilitati per HTTPS, vedremo anche come testare il tempo, in secondi, necessario per il completamento di un reindirizzamento e della connessione/handshake SSL al server. Sembra bello, vero, okay, cominciamo.

cURL è un potente strumento da riga di comando per trasferire dati da o verso un server, utilizzando protocolli come FILE, FTP, FTPS, HTTP, HTTPS e molti altri. Nella maggior parte dei casi, viene utilizzato come downloader da riga di comando o per controllare le intestazioni HTTP. Tuttavia, qui descriveremo una delle sue funzionalità meno conosciute.

cURL ha un'opzione utile: -w per stampare informazioni su stdout dopo un'operazione completata. Ha alcune variabili che possiamo utilizzare per testare i diversi tempi di risposta sopra elencati di un sito web.

Utilizzeremo alcune variabili legate al tempo, che possono essere passate in un dato formato come stringa letterale o all'interno di un file.

Quindi apri il tuo terminale ed esegui il comando seguente:

curl -s -w 'Testing Website Response Time for :%{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

Le variabili nel formato sopra sono:

  • time_namelookup: tempo, in secondi, impiegato dall'inizio fino al completamento della risoluzione del nome.
  • time_connect: tempo, in secondi, impiegato dall'inizio fino al completamento della connessione TCP all'host remoto (o proxy).
  • time_pretransfer: tempo, in secondi, impiegato dall'inizio fino all'inizio del trasferimento del file.
  • time_starttransfer – tempo, in secondi, impiegato dall'inizio fino al momento in cui il primo byte stava per essere trasferito.
  • time_total: tempo totale, in secondi, di durata dell'intera operazione (risoluzione in millisecondi).

Se il formato è troppo lungo, puoi scriverlo in un file e utilizzare la sintassi seguente per leggerlo:

curl -s -w "@format.txt" -o /dev/null http://www.google.com

Nel comando precedente, il flag:

  • -s – dice a curl di lavorare in silenzio.
  • -w – stampa le informazioni su stdout.
  • -o – utilizzato per reindirizzare l'output (qui scartiamo l'output reindirizzandolo a /dev/null).

Per i siti HTTPS, puoi eseguire il comando seguente:

curl -s -w 'Testing Website Response Time for :%{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

Nel formato sopra, le nuove variabili temporali sono:

  • time_appconnect: tempo, in secondi, impiegato dall'inizio fino al completamento della connessione/handshake SSL all'host remoto.
  • time_redirect: tempo, in secondi, impiegato per tutte le fasi di reindirizzamento, inclusa la ricerca del nome, la connessione, il pretrasferimento e il trasferimento prima dell'avvio della transazione finale; calcola il tempo di esecuzione completo per più reindirizzamenti.

Punti importanti da notare.

  • Noterai che i valori del tempo di risposta continuano a cambiare (a causa di diversi fattori) man mano che esegui test diversi, quindi è consigliabile raccogliere diversi valori e ottenere una velocità media.
  • In secondo luogo, dai risultati dei comandi di cui sopra, puoi vedere che l’accesso a un sito web tramite HTTP è molto più veloce che tramite HTTPS.

Per ulteriori informazioni, consultare la pagina man cURL:

man curl

Ultimo ma non meno importante, se i risultati non sono soddisfacenti, hai alcune modifiche da apportare sul tuo server o all'interno del codice. Potresti prendere in considerazione l'utilizzo dei seguenti tutorial che spiegano programmi e suggerimenti per velocizzare il caricamento dei siti Web in Linux:

  1. Installa Nginx con Ngx_Pagespeed (ottimizzazione della velocità) su Debian e Ubuntu
  2. Accelera le prestazioni di Nginx con Ngx_Pagespeed su CentOS 7
  3. Scopri come velocizzare i siti web utilizzando il modulo Nginx e Gzip
  4. Come aumentare la velocità Internet del server Linux con TCP BBR

È tutto! Ora sai come testare il tempo di risposta del sito web dalla riga di comando. Puoi porre domande tramite il modulo di feedback sottostante.