Un server proxy è all'origine un terminale che svolge la funzione di intermediario tra i computer di una rete locale (che usa talvolta dei protocolli diversi dal protocollo TCP/IP) e internet.
La maggior parte delle volte il server proxy è usato per il web, si tratta allora di un proxy HTTP. Tuttavia possono esistere dei server proxy per ogni protocollo applicativo (FTP, ecc.):
Il principio di funzionamento basico di un server proxy è abbastanza semplice: si tratta di un server "incaricato" da un'applicazione per effettuare una richiesta su internet al suo posto. Così, quando un utente si connette ad internet tramite un'applicazione client configurata per usare un server proxy, questa si connetterà in primo luogo al server proxy e gli darà la sua richiesta. Il server proxy si connetterà allora al server che l'applicazione client cerca di raggiungere e gli trasmetterà la sua richiesta. Il server risponderà in seguito al proxy, che a sua volta trasmetterà la risposta all'applicazione client:
Ormai, con l'uso del TCP/IP nelle reti locali, il ruolo di collegamento del server proxy è direttamente assicurato dal geteway e dai router. Ciò nonostante, i server proxy sono sempre attuali grazie ad altre funzionalità presenti.
La maggior parte dei proxy assicura anche una funzione di cache (in inglese caching), cioè la capacità di mantenere in memoria (in "cache") le pagine visitate più di frequente dagli utenti della rete locale per poterle fornire il più rapidamente possibile. In effetti, in informatica, il termine "cache" designa uno spazio di stoccaggio temporaneo dei dati (il termine "buffer" è ugualmente usato).
Un server proxy capace di mettere nella memoria cache le informazioni è generalmente detto "server proxy-cache". Questa funzionalità implementata in alcuni server proxy permette da una parte di ridurre l'uso della banda verso internet e dall'altra di ridurre i tempi di accesso per gli utenti ai documenti. Tuttavia, per arrivare a questo risultato, è necessario che il proxy paragoni regolarmente i dati stoccati nella memoria cache con quelli remoti per assicurarsi che i dati in cache siano sempre validi.
D'altra parte, grazie all'utilizzo di un proxy, è possibile assicurare il controllo delle connessioni (in inglese logging o tracking) mediante la costituzione di file di log che registrano sistematicamente le richieste degli utenti ad una loro richiesta di connessione a internet.
È quindi possibile filtrare le connessioni internet analizzando da una parte le richieste dei client, e dall'altra le risposte dei server. Quando il filtraggio è realizzato paragonando la richiesta del client ad una lista di richieste autorizzate, si parla di lista bianca, se invece si tratta di una lista di siti vietati si parla allora di lista nera. Infine l'analisi delle risposte dei server seguendo una lista di criteri (parole chiave, ecc.) è detta filtraggio di contenuto.
Dato che il proxy è l'intermediario indispensabile degli utenti della rete interna per accedere a delle risorse esterne, è a volte possibile usarlo per autentificare gli utenti, cioè di chiedere loro di identificarsi mediante un nome utente e una password ad esempio. Sarà quindi facile dare l'accesso alle risorse esterne solo alle persone autorizzate a farlo e di poter registrare nei file di log degli accessi identificati. Questo tipo di meccanismo, una volta realizzato, pone ovviamente numerosi problemi relativi alle libertà individuali e ai diritti delle persone, ecc.
Viene detto reverse-proxy un server proxy che permette non agli utenti di accedere alla rete internet ma bensì agli utenti di internet di accedere indirettamente ad alcuni server interni:
Il reverse-proxy serve anche da collegamento per gli utenti internet che desiderano accedere ad un sito web interno trasmettendogli indirettamente le richieste. Grazie al reverse-proxy, il server web è protetto dagli attacchi diretti dall'esterno, cosa che rinforza la sicurezza della rete interna. D'altra parte, la funzione di cache del reverse-proxy può alleggerire il carico del server per cui è previsto, ed è la ragione per cui un server simile è talvolta detto "acceleratore" server accelerator).
Infine, grazie a degli algoritmi perfezionati, il reverse-proxy può servire per ripartire il carico reindirizzando le richieste verso diversi server equivalenti: si parla allora di ripartizione del carico (in inglese load balancing).
Il proxy più diffuso è senza dubbio Squid, un software libero disponibile su numerose piattaforme tra cui Windows e Linux. Su Windows esistono più software che permettono di realizzare un server proxy ad un costo minore per la sua rete locale:
Wingate è la soluzione più diffusa (ma non gratuita);
La configurazione di un proxy con Jana server;
Windows 2000 integra Microsoft Proxy Server (MSP), completata da Microsoft Proxy Client, che permette di realizzare questa operazione.
Foto: © Pixabay.