Proxy Server e Caching

Proxy Server
È un computer che si frappone fra il computer che ha richiesto il servizio e quello che lo fornisce.
In questo modo chi fa la richiesta viene nascosto dal Proxy che è il vero fruitore del servizio e che provvederà a redistribuirlo ai suoi clienti.

Il proxy è generalmente dotato di capiente memoria cache atta a immagazzinare le pagine e più in generale i dati richiesti da un qualsiasi utente, in modo che una seconda richiesta degli stessi argomenti non abbia la necessità di attraversare tutta la rete Internet ma avenga automaticamente esaurita dal Proxy Server in un tempo minore e alla massima velocità di connessione.
Gli abbonati con il Consorzio Z.I.A. hanno la possibilità di utilizzare questo servizio.

Naturalmente, nel caso si acceda ad un server protetto sul quale il controllo degli accessi viene fatto in base all'indirizzo IP o al dominio del cliente, il cliente non deve utilizzare un proxy, in quanto non sarebbe visibile la postazione che realmente richiede il servizio. Questa è una situazione normale per gli utenti slip/ppp che si collegano a Internet attraverso la Rete Telematica Apuana, i quali non avranno bisogno di un Proxy server per visitare le pagine del Consorzio Z.I.A..

Gerarchia di Proxy Server
Per alzare le prestazioni del meccanismo di caching e per limitare il traffico sui backbone di Internet, è possibile inserire un Proxy server in una gerarchia di Proxies, strutturata di solito ad albero: nel caso un Proxy non sia in grado di soddisfare una richiesta, esso si rivolge ai Proxies del suo stesso livello e al Proxy del livello superiore, con buone probabilità di non avere la necessità di rintracciare il server con il documento originale. La maggiore velocità è garantita dall'ottimizzazione dei collegamenti fra i proxies.

Il protocollo
Il comportamento di un Proxy Server quando riceve la richiesta di accesso ad un certo oggetto si può così riassumere:

  1. se l'oggetto è presente nella cache locale (Cache Hit), tale oggetto viene immediatamente ritornato al cliente;
  2. se l'oggetto non è presente nella cache locale (Cache Miss) e se il proxy server è inserito in una gerarchia di proxies,
    1. il server propaga la richiesta agli altri Proxy server e verifica la raggiungibilità del server che possiede la copia originale dell'oggetto, inviando un pacchetto sulla porta "echo";
    2. se almeno uno dei server interrogati risponde (TCP Hit), il Proxy invia una GET al server che ha risposto per prima, memorizza l'oggetto recuperato nella cache e lo invia al cliente;
  3. se invece l'oggetto non è presente nella cache locale (Cache Miss) e il Proxy server non è inserito in una gerarchia di proxies, o è il server di più alto livello della gerarchia, invia una GET al server che possiede la copia originale dell'oggetto, memorizza l'oggetto recuperato nella cache e lo invia al cliente;
  4. se l'oggetto non è presente nella cache e se non riesce a contattare nessun server (TCP Miss), genera un messaggio di errore, lo memorizza nella cache e lo invia al cliente.

Come attivare il proxy del C.Z.I.A.
Il Proxy server per gli utenti della Rete Telematica Apuana, si chiama proxy.zia.ms.it.

Su questo Proxy server è attiva la memoria Squid Internet Object Cache.La porta di comunicazione tra il vostro computer collegato a Internet e la macchina proxy.zia.ms.it è la porta numero 8080.

Per attivare il Proxy occorre inserire nelle Options del proprio WWW Browser le seguenti indicazioni:

Ftp proxy:

proxy.zia.ms.it Port: 8080

Http proxy:

proxy.zia.ms.it Port: 8080

No proxy for:

www.zia.ms.it

Qui puoi trovare gli esempi per configurare i browsers più diffusi:

Netscape Navigator Internet Explorer

Politiche di caching
Il problema maggiore che deve affrontare un Proxy server è sicuramente il controllo della validità dei dati memorizzati nella cache memory; il server deve cioè cercare di mantenere nella cache, e quindi di restituire ai clienti, oggetti che non siano diversi dalla copia originale.

In un proxy server per http/ftp/gopher - come

quello della Rete Telematica Apuana - la politica di caching si basa sui seguenti punti:

  • ove possibile (pagine html) vengono utilizzati i campi "Time to Live" e "Last Modification Time" dell'header MIME associato all'oggetto;
  • nel caso di oggetti che non hanno associato un header MIME (ftp/gopher), o quando nell'header MIME nessuno dei due campi è specificato, il proxy server assegna all'oggetto nella cache un "Time to Live" (TTL) di default;
  • quando un cliente richiede un oggetto, presente nella cache, il cui TTL è scaduto:
    1. se l'oggetto è una pagina html, viene inviata una "GET-IF-MODIFIED" al server che possiede la copia originale dell'oggetto e, se la copia originale è stata modificata, viene ripreso l'intero oggetto;
    2. negli altri casi l'oggetto viene ripreso dal server che possiede la copia originale;
  • quando il cliente richiede un oggetto con una GET generata con il tasto "Reload" di Netscape o Mosaic, il proxy server contatta direttamente il server che possiede la copia originale dell'oggetto, memorizza l'oggetto nella cache e lo ritorna al cliente, anche se l'oggetto era già presente nella cache;
  • alcuni oggetti, individuati dal campo "Type" dell'header MIME, non vengono mai memorizzati nella cache: un esempio è la richiesta GET contenente la password richiesta dal sistema di autenticazione di un server protetto;
  • è inoltre possibile specificare, nel file di configurazione del proxy server, altri oggetti, individuati dal tipo di URL, da non memorizzare nella cache; ad esempio è uso comune non memorizzare nella cache oggetti con una URL del tipo "/cgi-bin/".

    Per ridurre il costo di errori ripetuti:

    • le risposte negative provenienti dal Domain Name Server (unknown host) vengono mantenute nella cache per pochi minuti;
    • le risposte negative generate da errori di traferimento (unknown URL, etc.) vengono mantenute nella cache per un tempo che può essere impostato nel file di configurazione.