3.1. Preambolo

Prima di iniziare a trattare questo argomento è fondamentale effettuare alcune premesse per comprendere le funzionalità di un sistema proxy dedicato che esegue anche tecniche di webcache.

Squid è un proxy server ovvero è un intermediario di una transazione HTTP che accetta le richieste provenienti dai client (browser web) e le processa eseguendone il forward verso il server di origine. Le richieste possono essere registrate e modificate anche prima che vengano girate al server di origine.

Squid è un apparato di webcache che registra i contenuti web in uno spazio disco dedicato e quando possibile ne riutilizza il contenuto, i contenuti web prendono il nome di oggetti (object), gli oggetti presenti nella cache prendono il nome di HIT mentre gli oggetti che non sono stati memorizzati prendono il nome di MISS.

3.1.1. L'architettura Web

Prima di iniziare a parlare di Squid dovremmo comprendere alcune nozioni ed alcuni termini che ci consentiranno di intendere il concetto di proxy ed il concetto di webcaching

3.1.2. Clients e Servers

Il web e molti altri sistemi distributi si basano sull'architettura client/server, i clients sono anche conosciuti come user agent e iniziano la transazione inviando una richiesta al server. Un web server gestisce e fornisce l'accesso ad un insieme di risorse; il server, dopo aver processato la richiesta effettuata dal client, invia la risposta. I più comuni dei web client prendono il nome di browser web, lo scopo di un browser web è quello di visualizzare (eseguire il rendering) il contenuto delle pagine che sono state servite dal web server. Possono essere diversi i server maggiormente utilizzati, tra questi Apache HTTP Server è uno dei server più popolari (http://httpd.apache.org/).

3.1.3. Proxies

Il proxy è un mediatore di una transazione web, in effetti si tratta di una applicazione che viene posizionata tra il web client ed il server di origine, i proxy autorizzano e registrano le richieste provenienti dalla rete interna (inside) dirette verso la rete esterna (outside).

3.1.4. Oggetti web

Il termine object viene utilizzato per definire il traffico scambiato tra il client ed il server, object è un termine generico che descrive nella maniera migliore quelli che possono essere i differenti tipi di contenuti che vengono rilasciati dal server. Gli oggetti web (object) hanno un numero di caratteristiche molto importanti inclusa la grandezza (size), il tipo di documento (type), la data e l'ora di creazione nonchè la data e l'ora dell'ultima modifica.

3.1.5. URL

Uniform Resource Locator (URLs) è la forma più comune con la quale viene identificata una Universal Resource Identifier (URI). Gli URI o identificativi di risorse, sono una parte fondamentale dell'architettura Web in quanto si tratta dei nomi e gli indirizzi degli oggetti web. La sintassi delle URL viene descritta nella RFC 1738 (http://www.ietf.org/rfc/rfc1738.txt?number=1738)

3.1.6. Un sistema di webcache

Un sistema di webcache viene generalmente implementato con un apparato di rete dedicato che è stato progettato per memorizzare e trattenere nella memoria locale, la cache, tutti gli oggetti web che sono stati richiesti dagli utenti con maggiore frequenza. Tale sistema fa in modo che gli oggetti, memorizzati nella cache locale, non debbano più essere richiesti direttamente dalla rete internet e quindi riduce la necessità di utilizzo della banda dedicata. Grazie all'utilizzo di queste device di webcache, gli utenti delle reti aziendali o dei vari ISP (Internet Service Provider) rimarranno soddisfatti per la velocità con la quale accederanno alle risorse web e le contestuali necessità di banda dedicata verranno decisamente ridotte.

Come sappiamo, internet è una rete immensa ed il world wide web è principalmente composto da ipertesti, immagini ed altri files che vengono offerti dai rispettivi server di origine; tali apparati sono dislocati nei posti più disparati del pianeta e la richiesta degli oggetti www necessita di banda ed alta velocità. Gli amministratori delle reti studiano e progettano i sistemi di accesso alle risorse web e cercano di garantire un livello di servizio molto elevato, uno degli obiettivi principali che viene perseguito è quello di ridurre i costi mantenendo le performance molto elevate senza dover incrementare le risorse di banda internet dedicate.

Una device di webcaching è l'unico sistema che consente di mantenere alto il livello del servizio e di ridurre i costi: l'inserimento di queste device all'interno di un network determina una possibile riduzione dell'utilizzo della banda disponibile, nel caso di pagine statiche i valori percentuali relativi alla riduzione varieranno dal 30% al 40%, molto dipende anche dal numero e dal tipo di utenti della rete.