Facciamo qualcosa mentre il Server pensa

I protocolli, per dialoghi educati

Protocollo, una parola nota dagli adetti ai lavori, ma oscura per gli utenti che siano  boomer o millennial o Gen Z.

Per capire cosa si intende immaginatevi un incontro tra due diplomatici di alto rango. non si parleranno, tra di loro, come due amici al bar.

  

Ma seguiranno una serie di regole, di modi di fare e di dire, che permettano loro un dialogo aperto e senza malintesi. Bene, queste regole sono chiamate protocollo. Nello specifico sono il protocollo diplomatico.

L’obiettivo è quello di stabilire un contatto, tra entità differenti  (per lingua e cultura), che permetta di effettuare una comunicazione proficua. Ossia un dialogo dove, le opinioni o le richieste, siano comunicate in modo da salvaguardarne il contenuto. Si deve prevedere, ed evitare, tutto quanto rischi di creare dei malintesi.

I protocolli informatici

Nella tecnologia c’è la stessa esigenza. Computer, reti, ma anche televisori, cancelli, lampadine smart, insomma tutti i dispositivi che debbano dialogare fra loro, hano bisogno di stabilire delle regole di comunicazione.

Per questo si sente parlare spesso di protocollo in campo informatico.

Il protocollo del web: l’HTTP

I nostri browser per navigare in Internet usano principalmente il protocollo HTTP per dialogare con i server che ospitano i vari siti. Con l’HTTP si formulano la gran parte delle richieste per vedere immagini, video e testi sui nostri dispositivi, ma anche per inviare i dati di una prenotazione, di un acquisto o di un pagamento.

I protocolli influenzano le prestazioni

È intuitivo che un protocollo semplice o che gestisca in modo ottimizzao le richieste può influire sulla velocità di un sito. Per questo l’HTTP è spesso rivisto ed aggiornato per strizzare un occhio alle prestazioni mentre si aggiungono funzionalità e possibilità nella navigazione Internet.

La prima comparsa dell’HTTP è del 1996 con la sua formalizzazione nella versione 1.0. Da allora è evoluto in continuazione per aumentare le possibilità e migliorarne le prestazioni.

I siti web hanno le loro “colpe”

I siti Web, nel tempo, sono diventati sempre più complicati. Non è insolito che un server che ospita un sito debba fare molti lavori prima di farci vedere una pagina o dare una risposta.

Per esempio deve accedere ad un database, deve comporre la pagina con i dati ricevuti o deve inserire tutti i valori nei campi a tendina ed i bottoni in un form di prenotazione.
Questo, dal nostro punto di vista dietro ad un browser, si traduce in tempo d’attesa. Una parte dell’attesa è dovuta alla velocità della rete per la trasmissione dei dati e delle informazioni, ma un’altra parte è proprio quel tempo che il server impiega per assemblare la pagina richiesta, è detto server think-time.

In effetti la connessione si ferma per tutto il tempo che si prende il server e noi non possiamo far altri che aspettare.

Per aumentare la velocità facciamo qualcosa mentre il server pensa: la funzione Early Hints!

Nel 2017 è stato introdotto, in via sperimentale un nuovo meccanismo nel protocollo HTTP, si chiama Early Hints. In modo semplice si da al server l’opportunità di dire qualcosa mentre sta facendo le sue operazioni. Come se ci dicesse “guarda che ho quasi finito” o “io ho finito di fare questo, intato te puoi fare questo“.

Da un punto di vista tecnico il server può comunicare con il nuovo Status Code 103 prima del 200 che dice “ho fatto tutto“. Il browser, sulla base della risposta, può portarsi avanti facendo altre richieste. Ad esempio (moooolto semplificato) il server potrebbe dire “guarda che sto costruendo la pagina ed ho capito quali immagini serviranno” ed il browser potrebbe decidare di iniziare a scaricare queste immagini oppure rimanere ad aspettare.

Come fare per utilizzare questa nuova funzione?

Da parte degli utenti

L’unica azione che si può fare è quella di tenere aggiornati i nostri browser.

Ma attenzione! Non tutti la supportano ancora. Guardate la tabella interattiva del sito caniuse.com. Si vede che i browser per i PC che supportano lo status 103 sono quasi tutti, tranne Safari. Mentre, spostando la tabella verso destra, si vede che per i dispositivi mobile la situazione si deve ancora evolvere. In pratica solo Chrome su Android la supporta.

Se un browser non supporta ancora gli Early Hints e gli viene inviata un’intestazione di risposta 103, non succederà nulla: sarà semplicemente ignorata.

Early Hints è considerata una funzione  sperimentale in Chrome e beta di Cloudflare. Ciò significa che il comportamento della funzione potrebbe cambiare in futuro.

 

Da parte degli sviluppatori web

Qui le strade sono differenti e la scelta su quale intrprendere si basa sul tempo, le possibilità e le conoscenze a disposizione.

Sul mio server

Attivare Early Hints direttamente sul server che ospita in nostro sito richiede una conoscenza sistemistica del tipo di web server usato. Ad esempio per Apache  si deve prima attivare la fuzionalità e poi configurare quelle risorse che possono essere oggetto dello stato 103. Non è una cosa banale e nel tempo è complessa da gestire.

Sul CDN

Se già usate un servizio di CDN (content Delivery Network) molto probabilmente vi basterà configurarlo per il vostro sito. Ad esempio se usate CloudFare basta uno switch:


Sul fornitore di Hosting

Qui dipende dalla qualità del piano di hosting del vostro sito. Alcuni non hanno questa possibilità. Permettono molte cose con pannelli tipo cPanel, ispConfig,  ecc. ma non sempre così specifiche.

Altri, come Kinsta, hanno questa funzionalità inclusa in ogni piano. Per abilitare Early Hints, basta accedere nel pannello MyKinsta e, alla voce Early Hints, cliccare sul pulsante Abilita.

myKinsta

 

more insights