Spesso ci capita di ignorare, come sviluppatori web, una delle più comode risorse messe a nostra disposizione da 15 anni: il protocollo HTTP.
Tra il 1991 ed il 1996 il protocollo HTTP prende forma e sostanza e diviene, dunque, lo standard de facto su cui oggigiorno basiamo la più grande rete di scambio dati del mondo, Internet.
Nonostante la longevità e solidità di tale protocollo, molti si ostinano ad ignorarne uno degli aspetti maggiormente ben studiati, ovvero la specifica di caching.
Chiaramente essa si basa sullo scambio di header HTTP che contengano informazioni definite nella specifica stessa, come l'header Expires:
Expires: 20
che ci permette di comunicare ad un client che la risorsa richiesta è cachabile, in questo caso, per 20 secondi.
Utilizzando un header più complesso, il Cache-Control
Cache-Control: public, max-age=500,, s-maxage=500
possiamo definire regole più specifiche: in questo esempio comunichiamo, infatti, che la risorsa richiesta è cachabile per 500 secondi sia dalle cache pubbliche ( il browser, tipicamente ) sia da quelle condivise ( proxy e reverse proxy ).
Tipicamente, il problema della cache HTTP è che viene considerata limitata poiché applica delle regole comuni ad un'intera risorsa: problema risolto da Akamai e Oracle che, nel 2001, hanno "inventato" gli Edge Side Includes.