# Servidor intermediari

El servidor intermediari (en anglès proxy), en el context de les xarxes informàtiques, fa referència a un programa o dispositiu que realitza una acció en representació d'un altre, és a dir, fa d'intermediari en les peticions de recursos que realitza un client (A) a un altre servidor (C). Per exemple, si una hipotètica màquina A sol·licita un recurs a C, ho farà mitjançant una petició a B, que a l'hora traslladarà la petició a C; d'aquesta manera C no sabrà que la petició venia en un inici d'A.
Aquesta situació estratègica de punt intermedi li permet oferir diverses funcionalitats: control d'accés, registre del tràfic, restricció a determinats tipus de tràfic, millora de rendiment, anonimat de la comunicació, caché web, etc.
L'ús dels proxies és molt habitual en xarxes grans en les que és necessari compartir una única sortida cap a Internet. D'aquesta manera, totes les connexions dels clients de dins de la xarxa queden anonimitzades, ja que de cara a l'exterior totes s'originen des d'una única adreça IP.
Ara bé, la utilització de proxies limita l'ús de serveis que es poden utilitzar, i per extensió, també limita el nombre d'aplicacions que es puguin utilitzar de forma anònima, pel fet que la majoria de proxies estan especialitzats en el protocol HTTP. No obstant això, moltes aplicacions i serveix permeten l'encapsulament de protocols diversos en paquets HTTP que estenen les funcionalitats dels proxies web.

## Característiques

La paraula anglesa proxy significa apoderat en català.
* Comunament un servidor proxy és un equip informàtic que intercepta connexions de xarxa fetes des d'un client a un servidor de destí.
** El més popular és el servidor proxy de web. Intervé en la navegació per la web, amb diferents finalitats: seguretat, rendiment, anonimat, etc.
** Existeixen proxys específics per a altres protocols, com el proxy de FTP.
** El proxy ARP pot fer d'enrutador en una xarxa, ja que fa d'intermediari entre ordinadors.
* Proxy (patró de disseny) també és un patró de disseny (programació) amb el mateix esquema que el proxy de xarxa.
* Un component hardware també pot actuar com a intermediari per a altres.
Com es pot veure, proxy té un significat molt general, tot i que sempre és sinònim d'intermediari. Quan un equip de la xarxa vol accedir a una informació o recurs, és realment el proxy qui realitza la comunicació i a continuació trasllada el resultat a l'equip que l'ha sol·licitat.

### Avantatges

En general, no només en informàtica, els proxies fan possible:
* Control: només l'intermediari fa el treball real, per tant, es poden limitar i restringir els drets dels usuaris, i donar permisos únicament al servidor intermediari.
* Estalvi: només un dels usuaris (el proxy) ha d'estar preparat per fer la feina real. Amb estar preparat, s'entén que és l'únic que necessita els recursos necessaris per fer aquesta funcionalitat. Exemples de recursos necessaris per fer la funció poden ser la capacitat i la lògica de l'adreça de xarxa externa (IP).
* Velocitat: si diversos clients demanen el mateix recurs, el servidor intermediari pot fer memòria cau, és a dir, desar la resposta d'una petició per donar-la directament quan un altre usuari la demani. Així no ha de tornar a contactar amb la destinació i acaba més de pressa.
* Filtratge: el proxy es pot negar a respondre algunes peticions si detecta que estan prohibides.
* Modificació: com a intermediari que és, un proxy pot falsificar informació, o modificar-la seguint un algorisme.
* Anonimat: connectar-se de forma anònima a un recurs extern sense revelar la nostra IP, ja que és la IP pública del proxy la que és utilitzada per a l'obtenció del recurs.

### Desavantatges

En general, l'ús d'un intermediari pot provocar:
* Anonimat: si tots els usuaris s'identifiquen com un de sol, és difícil que el recurs accedit pugui diferenciar-los. Però això pot ser dolent, per exemple quan cal fer necessàriament la identificació.
* Abús: en estar disposat a rebre peticions de molts usuaris i respondre-les, és possible que faci alguna feina que no toqui. Per tant, ha de controlar qui hi té accés i qui no als seus serveis, cosa que normalment és molt difícil.
* Càrrega: un proxy ha de fer la feina de molts usuaris, la qual cosa pot produir una sobrecàrrega.
* Intromissió: és un pas més entre origen i destinació, i alguns usuaris poden no voler passar pel proxy (servidor intermediari). I menys si fa de memòria cau i guarda còpies de les dades.
* Incoherència: si fa de memòria cau, és possible que s'equivoqui i doni una resposta antiga quan n'hi ha una de més recent en el recurs de destinació. En realitat aquest problema no existeix amb els servidors proxy actuals, ja que es connecten amb el servidor remot per comprovar que la versió que té a la memòria cau segueix sent la mateixa que l'existent al servidor remot.
* Irregularitat: el fet que el proxy representi més d'un usuari dona problemes en molts escenaris, en concret els que pressuposen una comunicació directa entre 1 emissor i 1 receptor (com TCP/IP).

## Tipus
### Proxys oberts

Servidors accessibles des de qualsevol dispositiu connectat a internet, l'objectiu dels quals és simplement forwarding, és a dir, traspassar les dades des del client al servidor i viceversa.

### Proxys transparents

Algunes empreses i organitzacions, utilitzen els servidors intermediaris per a controlar l'accés als clients, tot i això, aquests, només han de canviar la configuració del seu dispositiu per a evitar els proxy que els controla. Els proxys transparents, són utilitzats juntament amb un firewall o tallafocs per tal d'interceptar i redirigir les connexions al proxy, així doncs, no fa falta cap mena de configuració per part del client i sovint, aquest ni tan sols coneix aquesta configuració.

### Reverse proxy

És el concepte contrari al proxy utilitzat normalment. Aquest rep peticions de clients i està programat per a oferir els recursos dels servidors que hi té associats. Aquests tipus de proxys serveixen per a amagar servidors (per exemple, interns a una empresa), de tallafocs i en general, se li pot donar qualsevol ús similar als proxys normals però des del punt de vista del servidor.

## Usos dels servidors intermediaris
### Filtratge

Es pot configurar un servidor proxy per a filtrar l'accés a alguns recursos d'internet, ja que simplement es nega a fer la petició que li ha fet el client al servidor final. Això permet a escoles i organitzacions que ho desitgin, assegurar que els usuaris connectats a la xarxa compleixen les polítiques establertes.

### Evitar censures

Mitjançant un servidor proxy, un client que té limitat l'accés a un recurs accessible des d'internet (per exemple, per la seva IP) pot accedir-hi, ja que qui fa la petició al servidor final és l'intermediari, i aquest no té el recurs limitat.

### Anonimat

De la mateixa manera, atès que qui fa les peticions al servidor final és el servidor intermediari, es pot utilitzar aquest perquè el servidor final no sàpiga realment des de quina IP s'ha fet la petició.

### Monitoratge

Suposant que un dispositiu està connectat a un servidor intermediari, aquest pot exercir com a tal i a més a més, atès que ha de passar el tràfic del client, pot espiar la informació que l'està traspassant.

### Millorar el rendiment

Mitjançant tècniques de memòria cau, un servidor intermediari és capaç d'accelerar una petició a un servei, ja que per al segon (i posteriors) client que demana el recurs, no necessita fer la petició al servidor final. Aquesta tècnica també permet reduir el tráfic de dades a canvi d'ocupar memòria en disc. És molt usada per proveïdor d'Internet i grans empreses, ja que els permet estalviar-se tràfic a canvi d'haver de guardar-se les peticions.

### Modificació del contingut original

Atès que el servidor intermediari ha de rebre i transmetre totes les dades de la resposta del servidor al client, aquest és capaç de modificar el continut que respon al client. Hi pot haver diverses motivacions per a fer això com per exemple, adaptar una pàgina web per a dispositius especials o evitar cookies, etc.

## Referències

* ↑ «Servidor intermediari». Cercaterm. TERMCAT, Centre de Terminologia.

## Enllaços externs

* ProxySite