ATTENZIONE!
Altervista, al contrario di quanto affermato dall'articolo datato 2017, NON impone più CloudFlare per offrire il protocollo HTTPS. Per abilitare HTTPS su Altervista è sufficiente cliccare sul tasto blu "Abilita HTTPS" nel pannello di controllo dello spazio web ed eventualmente aggiornare il file .htaccess se si vuole che il sito sia accessibile solo in HTTPS e non in HTTP.
L'apertura dell'account CloudFlare non è più necessaria!
Come detto nell'articolo Https e Google Chrome 56 il passaggio dal protocollo http a https si sta rendendo sempre più necessario per evitare gli avvisi di sicurezza e di connessione non sicura, per essere visibili maggiormente sui motori di ricerca e per un'altra serie di motivi spiegati nel precedente articolo.
Molti servizi di hosting stanno offrendo la possibilità di usufruire del protocollo https per i domini sui loro server anche con soluzioni completamente gratuite.
Anche Altervista offre questa possibilità e lo fa tramite CloudFlare, un'azienda americana che offre un servizio di Content Delivery Network con cui ha stretto degli accordi di collaborazione.
Cloudflare è un server che in pratica si interpone tra il server dove vengono ospitati i contenuti del sito web originario e l'utente.
Tra i vari servizi offre quello quello del protocollo https e del caching dei contenuti statici del sito sui vari server di cloudflare sparsi per il mondo in maniera da poter velocizzare il sito caricando queste risorse statiche dal server più vicino all'utente.
Come detto in precedenza l'attivazione del protocollo https su altervista è subordinato all'attivazione di cloudflare e il caching delle risorse è stata un po' la spina nel fianco di molti che hanno voluto cimentarsi nel passaggio a questo protocollo, vedremo ora il perché e le possibili soluzioni
Quali sono i contenuti statici per cloudflare e come li gestisce
Cloudflare considera una serie di tipi di file, tra cui .js, .css, tutte le delle immagini ed altre estensioni come contenuti statici da mantenere sui propri server e che quindi di default non vengono cambiati in tempo reale se modificati sul sito originale. In questo documento vengono indicati tutti i tipi di file che vengono considerati statici.
Problemi
In fase di sviluppo di un sito questo può essere un problema. Questo perché questi contenuti, in particolar modo css, immagini e javascript vengono cambiati frequentemente, fino a quando non viene decisa la versione definitiva. Stessa cosa nel caso si abbia la necessità che uno o più di questi contenuti statici per qualsiasi motivo non venga mantenuto in cache sui server di Cloudflare anche in fase di produzione..
Soluzioni
Fortunatamente Cloudflare fornisce più di un metodo per il gestire in maniera personalizzata questa funzione di cache.
I primi due metodi sono quelli descritti da altervista nella documentazione ufficiale qui:
- La modalità di sviluppo che permette di disabilitare la cache per una durata di 3 ore;
- L'Azzeramento Cache che cancella la cache presente sui server di Cloudflare creandone una nuova alla prossima richiesta di quelle risorse.
Oltre a questi due metodi se si avesse bisogno di gestire la cache in altra maniera ne esistono altri due presenti quando loggate sul pannello di controllo di cloudflare.
Cliccando sulla voce caching dal menù in alto, si aprirà la pagina per configurare tutti gli aspetti di questo servizio di Cloudflare.
Oltre alle due impostazioni citate in precedenza ne troverete una denominata Caching Level.
Le tre opzioni di questa funzionano in questo modo:
- Standard (default) : la risorsa viene mantenuta nella cache di cloudflare fino a quando la query string ovvero i parametri del link rimangono gli stessi. Ad esempio example.com/pic.jpg?version=1 rimarrà in cache fino a quando la query string rimarrà ?version=1 ma cambierà la prima volta che questa diventerà per esempio ?version=2 e così via;
- Ignore Query String: verrà ignorata qualsiasi query string per cui la risorsa rimarrà sempre quella caricata in cache indipendentemente da qualsiasi query string;
- No Query String: la risorsa verrà caricata dalla cache di cloudflare solo se non contiene una query string quindi in questo caso la risorsa example.com/pic.jpg?with=query verrà sempre ricaricata venendo gestita come un qualunque file non statico.
L'ultima modalità elencata è quella più interessante perché permette di selezionare dei file considerati statici e farli ricaricare ad ogni nuova richiesta, in qualsiasi momento anche senza avere la modalità di sviluppo attiva. Tutta la documentazione ufficiale relativa alle impostazioni del caching level di cloudflare può essere trovata qui
Per evitare confusione, quando parlo di cache di cloudflare in questo articolo intendo la cache di questo sul server e non quella del browser dell'utente, questa non viene influenzata, si continua a sfruttare tutti i vantaggi.
Se non ci si volesse accontentare di questa terza modalità per agire sulla cache di Cloudflare esiste un ulteriore metodo.
Cliccando sulla voce Page Rules dal menù in alto, si aprirà la pagina per configurare diversi aspetti sulla gestione delle opzioni di cloudflare in base all'indirizzo delle pagine.
La versione gratuita di cloudflare offre fino a 3 regole per ogni sito ma dovrebbero essere più che sufficienti.
Il creare una regola per non utilizzare la cache di cloudflare è molto semplice da fare. Basterà cliccare su Create Rule e compilare i campi come in questa immagine:
E poi cliccare su Save and Deploy.
In questo esempio è stato detto a Cloudflare di prendere tutto i file (il carattere *) presenti sul sito example.com e delle sue sottocartelle e di non utilizzare la cache per questi.
Le regola può essere adattata in base alle proprie esigenze limitandola a determinate estensioni come per esempio *.css o solo ad una determinata sottocartella esempio example.com/imgs/* per adeguarla alle proprie esigenze.
Sfortunatamente Cloudflare non supporta ancora le espressioni regolari nella creazione delle regole per cui non è possibile specificare più estensioni in una sola regola, ma nonostante questo la funzione Page Rules può essere un'ottima risorsa.