Reading Time: 5 minutes

Caching Web

Una cache web, nota anche come server proxy, è un’entità di rete che soddisfa richieste HTTP per conto di un server web d’origine.

La cache web ha una propria memoria su disco in cui conserva copie di oggetti recentemente richiesti.

Il browser di un utente può essere configurato in modo che tutte le richieste HTTP dell’utente vengano innanzitutto dirette alla cache web.

Una volta configurato il browser, ogni richiesta di oggetto da parte del browser viene inizialmente diretta alla cache.

Per esempio, supponiamo che un browser stia richiedendo l’oggetto http://www.eshttp://www.esempio.edu/campus.png.empio.edu/campus.png.

Ecco cosa succede:

  1. il browser stabilisce una connessione TCP con la cache web e invia alla cache una richiesta HTTP per l’oggetto specificato;
  2. la cache web controlla la presenza di una copia dell’oggetto memorizzata localmente. Se l’oggetto viene rilevato, la cache web lo inoltra all’interno di un messaggio di risposta HTTP al browser client;
  3. se, invece, la cache web non dispone dell’oggetto, apre una connessione TCP verso il server di origine, ossia nel nostro esempio www.esempio.edu.
    Poi la cache web invia una richiesta HTTP per l’oggetto nella connessione TCP. Una volta ricevuta questa richiesta, il server di origine invia alla cache web l’oggetto all’interno di una risposta HTTP;
  4. quando la cache web riceve l’oggetto, ne salva una copia nella propria memoria locale e ne inoltra un’altra copia, all’interno di un messaggio di risposta HTTP, al browser client (sulla connessione TCP esistente tra il browser client e la cache web).

Si noti che la cache è contemporaneamente server e client.

Quando riceve richieste da e invia risposte a un browser, agisce da server.

Quando invia richieste a e riceve risposte da un server di origine, funziona da client.

Generalmente le cache web sono acquistate e installate da un ISP. Per esempio, un’università può installare una cache sulla propria rete e configurare tutti i browser della sede per puntare a quella cache.

Oppure un grande ISP, potrebbe installare una o più cache nella propria rete e preconfigurare i browser in modo che puntino alle cache installate.

Il caching web si è sviluppato in Internet per due ragioni.

Innanzitutto, una cache web può ridurre in modo sostanziale i tempi di risposta alle richieste dei client, in particolare se l’ampiezza di banda che costituisce il collo di bottiglia tra il client e il server d’origine è molto inferiore rispetto all’ampiezza di banda minima tra il client e la cache.

Se esiste una connessione ad alta velocità tra il client e la cache, come spesso avviene, e se l’oggetto è nella cache, allora questa sarà in grado di trasportare l’oggetto rapidamente al client.

In secondo luogo, le cache web possono ridurre sostanzialmente il traffico sul collegamento d’accesso a Internet, con il vantaggio di non dover aggiornare tanto rapidamente l’ampiezza di banda, e ottenendo quindi una riduzione dei costi.

Inoltre, le cache web possono ridurre in modo sostanziale il traffico globale del Web in Internet, migliorando di conseguenza le prestazioni di tutte le applicazioni.

Per comprendere meglio i benefici delle cache, consideriamo un esempio nel contesto della figura  di seguito.

La figura mostra due reti: la rete di un ente e la parte pubblica di Internet.

La rete dell’ente è una LAN ad alta velocità. Un collegamento a 15 Mbps connette un router della prima rete a uno della seconda.

I server di origine sono collegati a Internet e situati in diverse parti del mondo.

Supponiamo che la dimensione media di un oggetto sia 1 Mbit e che i browser dell’ente verso i server d’origine abbiano una frequenza media di 15 richieste al secondo.

Ipotizziamo che i messaggi di richiesta HTTP siano trascurabilmente piccoli e non creino pertanto traffico nelle reti o nel collegamento d’accesso (tra i due router).

Supponiamo, inoltre, che la quantità di tempo che intercorre da quando il router sul lato Internet del collegamento d’accesso inoltra una richiesta HTTP (all’interno di un datagramma IP) a quando riceve la risposta (generalmente, all’interno di molti datagrammi IP) sia mediamente di due secondi.

In modo informale, ci riferiamo a questo ultimo ritardo come ritardo Internet.

Il tempo totale di risposta, ossia il tempo che intercorre tra la richiesta da parte del browser di un oggetto fino alla corrispondente ricezione dell’oggetto, è la somma del ritardo di rete locale, del ritardo di accesso (ritardo tra i due router) e del ritardo Internet.

L’intensità di traffico sulla rete locale è pari a:

(15 rcisehtei/secondo) * (1 Mbit/richiesta) / (100 Mbps) = 0,15

mentre l’intensità di traffico sul collegamento d’accesso (dal router Internet al router dell’ente) vale:

(15 richieste/secondo) * (1 Mbit/richiesta) / (15 Mbps) = 1

Un’intensità di traffico di 0,15 su una rete locale provoca generalmente alcune decine di millisecondi di ritardo che può, quindi, essere trascurato.

Comunque, quando l’intensità di traffico si avvicina a 1, il ritardo su un collegamento diventa notevole e cresce senza limiti.

Pertanto, il tempo di risposta medio per soddisfare le richieste diventa dell’ordine dei minuti, se non superiore, il che è inaccettabile per gli utenti.

Chiaramente occorre fare qualcosa.

Una possibilità consiste nell’incremento della velocità d’accesso, per esempio da 15 Mbps a 100 Mbps.

Questo abbasserà l’intensità di traffico sul collegamento d’accesso fino a 0,15, il che si traduce in ritardi trascurabili tra i due router.

In questo caso, il tempo totale di risposta sarà di circa due secondi, ossia il ritardo di Internet; ma questa soluzione implica che l’ente deve aggiornare il proprio collegamento d’accesso, il che può risultare molto costoso.

Una soluzione alternativa consiste nell’adozione di una cache web nella rete dell’istituzione.

Le percentuali di successo (hit rate) – la frazione di richieste soddisfatte da una cache – variano in pratica tra 0,2 e 0,7.

A scopi esemplificativi, supponiamo che per la nostra istituzione la frequenza di successo sia 0,4.

Dato che i client e la cache sono collegati alla stessa rete locale ad alta velocità, il 40% delle richieste verrà soddisfatto dalla cache quasi immediatamente, ossia entro 10 millisecondi.

Ciò nondimeno, il restante 60% delle richieste deve ancora essere soddisfatto dai server di origine.

Ma ora solo il 60% degli oggetti richiesti passa attraverso il collegamento d’accesso, e l’intensità di traffico sul collegamento d’accesso si riduce da 1 a 0,6.

In genere, un’intensità di traffico inferiore a 0,8 su un collegamento a 15 Mbps corrisponde a un piccolo ritardo, dell’ordine delle decine di millisecondi.

Questo ritardo è trascurabile rispetto ai due secondi di ritardo Internet.

Sulla base di queste considerazioni, il ritardo medio è pertanto

0,4 * (0,01 secondi) + 0,6 * (2,01 secondi)

che è solo leggermente superiore a 1,2 secondi.

Quindi, questa seconda soluzione fornisce un tempo di risposta perfino inferiore rispetto alla prima, e non richiede l’aggiornamento del collegamento a Internet.

Questa deve, ovviamente, acquistare e installare una cache web; una spesa comunque contenuta.

Molte cache utilizzano software di pubblico dominio che gira su PC economici.

error: Content is protected !!

La maggior parte dei contenuti del blog ComputerSec vengono pubblicati a beneficio di tutti e in modo completamente gratuito.
Tuttavia per supportare il blog, e per avere ulteriori vantaggi, puoi decidere di abbonarti e sfruttare al 100% tutti i contenuti!
Abbonati Ora!

Complimenti! Ti sei iscritto alla nostra Newsletter

C'è stato un errore durante l'invio della richiesta. Per favore riprova.

Computer Security will use the information you provide on this form to be in touch with you and to provide updates and marketing.