Javascript nasce come un linguaggio lato client, e quindi non può accedere ed eseguire operazioni lato server (a meno di non usare framework specifici ovviamente, ma non è il nostro caso).

La mia necessità è quella di far scaricare agli utenti un file tramite AJAX.

Questo perchè il file, prima di essere creato, richiede un pò di elaborazione.

Usando un linguaggio lato server (nel nostro caso PHP) è possibile eseguire questa operazione.

Ho trovato questo script Python, che in pratica ci permette di visualizzare in maniera leggibile le statistiche delle richieste fatte con curl: httpstat!

Se siamo su Debian, possiamo procedere ad installarlo così:

# aptitude install curl python3-pip

Per controllare la connessione a internet con Python, non abbiamo un modulo specifico.

Dobbiamo effettuare una richiesta ad un url, e verificare che sia andata a buon fine.

Per farlo possiamo usare il modulo urllib.

Specifico che siamo in Python 3.

La compressione GZIP serve per comprimere al meglio i file CSS/JS/HTML esposti dal server, in modo da aumentare la velocità delle pagine web.

Vediamo come abilitare questa compressione in Nginx, uno dei web server più usati al momento.

Aprite con privilegi elevati il file di configurazione:

#vim /etc/nginx/nginx.conf

cURL è un programma molto usato da sviluappatori e sysadmin, sia in ambito Linux che in macOS.

Ma la versione installata di default sul sistema Apple non supporta HTTP/2.

Infatti:

$ curl -I --http2 https://www.google.it/
curl: (1) Unsupported protocol

Ma la soluzione è abbastanza semplice: bisogna cURL con nghttp2.