I
server proxy svolgono un importante ruolo nell’architettura
Web, perché forniscono un’ottimizzazione che riduce i tempi di
latenza e il carico sui server. Ovviamente il browser deve essere opportunamente
configurato per contattare un proxy locale invece della sorgente originale e
il proxy deve essere configurato per memorizzare nella sua cache copie delle
pagine Web.
La prima volta che un utente accede ad una determinata pagina Web, il proxy
deve ottenerne una copia dal server che la gestisce, la memorizza nella sua
cache e ritorna la pagina come risposta alla richiesta. La volta successiva
che un utente accede alla stessa pagina, il proxy estrae i dati dalla sua cache
senza inviare richieste attraverso Internet. Di conseguenza, il traffico su
Internet è significativamente ridotto.
HTTP include un supporto esplicito per i server proxy: il protocollo specifica
esattamente come un proxy deve gestire ogni richiesta, come deve interpretare
le intestazioni, come un browser deve trattare con un proxy e come un proxy
deve trattare con un server.
Il problema centrale in tutti gli schemi di memorizzazione in cache riguarda
la temporizzazione. Da una parte, conservare troppo a lungo
una copia memorizzata nella cache fa sì che diventi “vecchia”,
il che significa che le modifiche all’originale non si riflettono sulla
copia. D’altra parte, se questa non rimane abbastanza a lungo, si hanno
problemi di efficienza, perché la richiesta successiva deve ritornare
al server. HTTP consente di gestire questo problema in due modi: impostando
un timeout o utilizzando If-Modified-Since.
Un
importante aspetto dei server proxy è che per la loro natura, forniscono
una certa anonimia.
Il server proxy è lo strumento migliore per navigare in Internet in modo
anonimo, senza lasciare traccia e visitare siti, inviare posta, utilizzare chat,
senza essere mai riconosciuti.
Abbiamo visto come un server proxy si interpone fra il proprio computer e Internet,
facendo da intermediario per il tutto il traffico di dati sia in uscita che
in entrata. In pratica, se utilizzato in una rete locale, è l’unico
ad avere accesso alla rete esterna. Il che vuole dire che non saranno le identità
dei singoli computer a viaggiare in rete, ma solamente quella del proxy.
Siccome ogni computer collegato alla rete ha un indirizzo IP che accompagna
tutta l’attività in rete, qualsiasi sua azione è resa facilmente
identificabile. Pertanto, navigare utilizzando un proxy vuol dire poter navigare
con una identità generica, e solamente leggendo le registrazioni del
proxy sarà possibile conoscere il vero indirizzo IP del computer. Per
questo motivo l’utilizzo del proxy fa anche da ostacolo per i malintenzionati
che potrebbero tentare di risalire dalla rete al client.
Anche
se, in genere, utilizzati nelle LAN private, esiste un certo numero di server
proxy pubblicamente utilizzabili (volontariamente o per caso) anche dall’esterno.
Usando Internet Explorer, ad esempio, si può specificare di voler utilizzare
un server proxy, indicando l’indirizzo e la porta di uno di questi.
Questa caratteristica dei server proxy può garantire una certa privacy,
ma può anche essere sfruttata da malintenzionati per compiere azioni
poco lecite, con buone garanzie di non essere rintracciati.
Per un maggior grado di sicurezza, è possibile concatenare più
server proxy: più è lunga la catena e più
sarà difficile trovare tracce del client. In questo modo, solo il primo
proxy della catena conosce la vera identità del client. Per poter utilizzare
una catena, bisogna specificare l’URL nella seguente maniera:
http://Proxy1:Porta1/http://Proxy2:Porta2/http://www.Sito.it/