Proxy

**Proxy**, **mandatario** ou **servidor mandatario**, é en ciencias da computación un programa ou dispositivo que realiza unha acción en representación doutro. Unha finalidade habitual é a do **servidor proxy**, que serve para permitir o acceso a Internet a todos os equipos dunha organización cando só se pode dispoñer dun único equipo conectado, isto é, un único enderezo IP.

## En xeral 
A palabra **proxy** úsase en moitas situacións onde ten sentido un *intermediario* (non necesariamente en informática):

* O uso máis común é o de **servidor proxy**, que é un ordenador que intercepta as conexións de rede que un cliente fai a un servidor de destino.
** Deles, o máis famoso é o **servidor proxy de web** (comunmente coñecido soamente como "**proxy**"). Intercepta a navegación dos clientes por páxinas web, por varios motivos posibles: seguridade, rendemento, anonimato etc.
** Tamén existen proxies para outros protocolos, como o **proxy de FTP**
** O proxy ARP pode facer de enrutador nunha rede, xa que fai de intermediario entre ordenadores
* Proxy (padrón de deseño) tamén é un padrón de deseño (programación) co mesmo esquema que o proxy de rede.
* Un compoñente hardware tamén pode actuar como intermediario para outros (por exemplo, un teclado USB ao que se lle poden conectar máis dispositivos USB).
* Fóra da informática, un *proxy* pode ser unha persoa autorizada para actuar en representación doutra persoa; por exemplo, alguén a quen lle delegaron o dereito a voto.
* Unha *guerra proxy* é unha na que as dúas potencias usan a terceiros para o enfrontamento directo.

Como se ve, **proxy** ten un significado moi xeral, aínda que sempre é sinónimo de **intermediario**. Tamén se pode traducir por **delegado** ou **apoderado** (o que ten o poder).

### Vantaxes 
En xeral (non só en informática), os proxies fan posibles varias cousas novas:

* **Control**. Só o intermediario fai o traballo real, xa que logo pódense limitar e restringir os dereitos dos usuarios, e dar permisos só ao proxy.
* **Aforro**. Xa que logo, só *un* dos usuarios (o proxy) ha de estar equipado para facer o traballo real.
* **Velocidade**. Se varios clientes van pedir o mesmo recurso, o proxy pode facer caché: gardar a resposta dunha petición para dala directamente cando outro usuario a pida. Así non ten que volver a contactar co destino, e acaba máis rápido.
* **Filtrado**. O proxy pode negarse (pode programarse a tal fin) a responder algunhas peticións se detecta que están prohibidas.
* **Modificación**. Como intermediario que é, un proxy pode falsificar información, ou modificala seguindo un algoritmo.
* **Anonimato**. Se todos os usuarios identifícanse como un só, é difícil que o recurso accedido poida diferencialos. Pero isto pode ser malo, por exemplo cando hai que facer necesariamente a identificación.

### Desvantaxes 
En xeral (non só en informática), o uso dun intermediario pode provocar:

* **Abuso**. Ao estar disposto a recibir peticións de moitos usuarios e respondelas, é posible que faga algún traballo que non toque. Xa que logo, ha de controlar quen ten acceso e quen non aos seus servizos, cousa que normalmente é moi difícil.
* **Carga**. Un proxy ha de facer o traballo de *moitos* usuarios.
* **Intromisión**. É un paso máis entre orixe e destino, e algúns usuarios poden non querer pasar polo proxy. E menos se fai de caché e garda copias dos datos.
* **Incoherencia**. Se fai de caché, é posible que se equivoque e dea unha resposta antiga cando hai unha máis recente no recurso de destino.
* **Irregularidade**. O feito de que o proxy represente a máis dun usuario dá problemas en moitos escenarios, en concreto os que presupoñen unha comunicación directa entre un emisor e un receptor (como TCP/IP).

## Funcionamento 
A continuación falarase do **servidor proxy de web**, o máis común.

Un proxy permite a outros equipos conectarse a unha rede de forma indirecta a través del. Cando un equipo da rede desexa acceder a unha información ou recurso, é realmente o proxy quen realiza a comunicación e a continuación traslada o resultado ao equipo inicial. Nuns casos isto faise así porque non é posible a comunicación directa e noutros casos porque o proxy engade unha funcionalidade adicional, como pode ser a de manter os resultados obtidos (p.ex.: unha páxina web) nunha caché que permita acelerar sucesivas consultas coincidentes. Con esta denominación xeral de proxy agrúpanse diversas técnicas.

## Proxy de web / Proxy caché de web 
Trátase dun proxy para unha aplicación específica: o acceso á web. Á parte da utilidade xeral dun proxy, proporciona unha caché para as páxinas web e os contidos descargados, que é compartida por todos os equipos da rede, coa conseguinte mellora nos tempos de acceso para consultas coincidentes. Ao mesmo tempo libera a carga de enlazalos cara a Internet.

### Funcionamento 
# O cliente realiza unha petición (p.e. mediante un navegador web) dun recurso de Internet (unha páxina web ou calquera outro arquivo) especificado por unha URL.
# Cando o proxy caché recibe a petición, busca a URL resultante na súa caché local. Se a atopa, devolve o documento inmediatamente, se non é así, captúrao do servidor remoto, devólveo ao que o pediu e garda unha copia na súa caché para futuras peticións.

A caché utiliza normalmente un algoritmo para determinar cando un documento está obsoleto e debe ser eliminado da caché, dependendo da súa antigüidade, tamaño e histórico de acceso. Dous deses algoritmos básicos son o LRU (o usado menos recentemente, en inglés "Least Recently Used") e o LFU (o usado con menos frecuencia, "Least Frequently Used").

Os proxies web tamén poden filtrar o contido das páxinas Web servidas. Algunhas aplicacións que intentan bloquear contido Web ofensivo están implementadas como proxies Web. Outros tipos de proxy cambian o formato das páxinas web para un propósito ou unha audiencia específicos, para, por exemplo, amosar unha páxina nun teléfono móbil ou unha PDA. Algúns operadores de rede tamén teñen proxies para interceptar virus e outros contidos hostís servidos por páxinas Web remotas.

### Exemplo 
:Un cliente dun ISP manda unha petición a Google. A petición chega nun inicio ao servidor Proxy que ten este ISP, non vai directamente ao enderezo IP do dominio de Google. Esta páxina concreta adoita ser moi solicitada por unha alta porcentaxe de usuarios, polo tanto o ISP retena no seu Proxy por un certo tempo e crea unha resposta moito menor en tempo. Cando o usuario crea unha procura, o servidor Proxy xa non é utilizado e megared envía a súa petición e o cliente recibe a súa resposta agora si desde Google.

### Outros usos 
:Como método extra e de axuda en descargas mediante aplicacións P2P; o cal é usado en Lphant e algúns Mods do Emule. (ver Webcaché en aplicacións P2P).

### Vantaxes 
* **Aforro de Tráfico**: As peticións de páxinas Web fanse ao servidor Proxy e non a Internet directamente. Polo tanto, fai máis lixeiro o tráfico na rede e descarga os servidores destino, aos que chegan menos peticións.
* **Velocidade en tempo de resposta**: O servidor Proxy crea un caché que evita transferencias idénticas da información entre servidores durante un tempo (configurado polo administrador) así que o usuario recibe unha resposta máis rápida.
* **Demanda a Usuarios**: Pode cubrir a un gran número de usuarios, para solicitar, a través del, os contidos Web.
* **Filtrado de contidos**: O servidor proxy pode facer un filtrado de páxinas ou contidos baseándose en criterios de restrición establecidos polo administrador dependendo valores e características do que non se permite, creando unha restrición cando sexa necesario.
* **Modificación de contidos**: Baseándose na mesma función do filtrado, e chamado Privoxy, ten o obxectivo de protexer a privacidade en Internet, pode ser configurado para bloquear enderezos e Cookies por expresións regulares e modifica na petición o contido.

### Desvantaxes 
* As páxinas amosadas poden non estar actualizadas se estas foron modificadas desde a última carga que realizou o proxy caché.

Un deseñador de páxinas web pode indicar no contido do seu web que os navegadores non fagan unha caché das súas páxinas, pero este método non funciona habitualmente para un proxy.

* O feito de acceder a Internet a través dun Proxy, no canto de mediante conexión directa, impide realizar operacións avanzadas a través dalgúns portos ou protocolos.
* Almacenar as páxinas e obxectos que os usuarios solicitan pode supoñer unha violación da intimidade para algunhas persoas.

## Proxies transparentes 
Moitas organizacións (incluíndo empresas, colexios e familias) usan os proxies para reforzar as políticas de uso da rede ou para proporcionar seguridade e servizos de caché. Normalmente, un proxy Web ou NAT non é transparente á aplicación cliente: debe ser configurada para usar o proxy, manualmente. Polo tanto, o usuario pode evadir o proxy cambiando simplemente a configuración.

Un **proxy transparente** combina un servidor proxy con NAT de maneira que as conexións son enrutadas dentro do proxy sen configuración por parte do cliente, e habitualmente sen que o propio cliente coñeza da súa existencia. Este é o tipo de proxy que utilizan os provedores de servizos de Internet (ISP).
En España, a compañía máis expandida en canto a ADSL refírese, ISP Telefónica, deixou de utilizar proxy transparente cos seus clientes a partir de febreiro de 2006.

## Reverse Proxy 
Un *reverse proxy* é un servidor proxy instalado no domicilio dun ou máis servidores web. Todo o tráfico entrante de Internet e co destino dun deses servidores web pasa a través do servidor proxy. Hai varias razóns para instalar un "reverse proxy":
* Seguridade: o servidor proxy é unha capa adicional de defensa e polo tanto protexe os servidores web.
* Encriptación / Aceleración SSL: cando se crea un sitio web seguro, habitualmente a encriptación SSL non a fai o mesmo servidor web, senón que é realizada polo "reverse proxy", o cal está equipado cun hardware de aceleración SSL (Security Sockets Layer).
* Distribución de Carga: o "reverse proxy" pode distribuír a carga entre varios servidores web. Nese caso, o "reverse proxy" pode necesitar reescribir as URL de cada páxina web (tradución da URL externa á URL interna correspondente, segundo en que servidor atópese a información solicitada)
* Caché de contido estático: Un "reverse proxy" pode descargar os servidores web almacenando contido estático como imaxes e outro contido gráfico..

## Proxy NAT (Network Address Translation) / Enmascaramento 
Outro mecanismo para facer de intermediario nunha rede é o NAT.

A tradución de enderezos de rede (NAT, Network Address Translation) tamén é coñecida como enmascaramento de IPs. É unha técnica mediante a cal os enderezos fonte ou destino dos paquetes IP son reescritos, substituídos por outros (de aí o "enmascaramento").

Isto é o que ocorre cando varios usuarios comparten unha única conexión a Internet. Disponse dun único enderezo IP público, que ten que ser compartido. Dentro da rede de área local (LAN) os equipos empregan enderezos IP reservados para uso privado e será o proxy o encargado de traducir os enderezos privados a ese único enderezo público para realizar as peticións, así como de distribuír as páxinas recibidas a aquel usuario interno que a solicitou.

Esta situación é moi común en empresas e domicilios con varios ordenadores en rede e un acceso externo a Internet. O acceso a Internet mediante NAT proporciona unha certa seguridade, posto que na realidade non hai conexión directa entre o exterior e a rede privada, e así os nosos equipos non están expostos a ataques directos desde o exterior.

Mediante NAT tamén se pode permitir un acceso limitado desde o exterior, e facer que as peticións que chegan ao proxy sexan dirixidas a unha máquina concreta que sexa determinada para tal fin no propio proxy.

A función de NAT reside nas devasas, e resulta moi cómoda porque non necesita de ningunha configuración especial nos equipos da rede privada que poden acceder a través del coma se fose un mero encamiñador.

## Notas 
## Véxase tamén 
### Ligazóns externas 
* Proxies, proxies-caché e proxies transparentes 
* Vantaxes e inconvenientes do proxy-caché
* Tutorial de Proxy (en inglés)
* Fresh Proxy List(en inglés)