Servidores Proxy

La finalidad de este apartado consiste en explicar como un navegador almacena y consulta las p�ginas de su cach� y como lo hace un servido Proxy, de esta manera podemos presentar como modificar su comportamiento por defecto y averiguar posibles deficiencias. Antes de empezar se muestran algunas de las cabeceras del protocolo HTTP/1.1 que se suelen utilizar en Proxys y navegadores.

.�Cabeceras del mensaje

Las siguientes cabeceras forman parte del protocolo HTTP/1.1 definidas en el RFC2616, salvo que se indique lo contrario.

Cache-Control

Permite indicar si un elemento puede ser cacheado y su caducidad.

ValorSignificado
publicIndica que la respuesta a una petici�n puede ser ocultada (cacheada) tanto por clientes como por el Proxy.
privateIndica que la respuesta no se puede cachear por caches compartidas, es decir, solamente en teor�a podr�a cachearla un cliente.
no-cacheNo puede cachear el elemento ni el cliente ni el Proxy.
max-ageSegundos m�ximos que se considera un objeto no caducado desde que se realiz� su petici�n.
must-revalidateObliga a comparar con el servidor web antes de usar el cach�.

Pragma

Corresponde al HTTP/1.0 pero por razones de compatibilidad actualmente se considera soportado aunque solo para peticiones. Su sintaxis es la misma que en Cache-Control.

Via

Usado por Proxys o gateways para indicar el protocolo intermedio entre el cliente y el servidor. Generalmente se suele a�adir la maquina y la versi�n del software del Proxy.

ValorSignificado
OnMostrar� informaci�n como el nombre de la m�quina del Proxy.
OffNo a�ade informaci�n en la cabecera Via.
FullMostrar� informaci�n como el nombre de la m�quina y la versi�n del software.
BlockEliminar� las l�neas en que aparezca la cabecera Via.

Expires

Indica cuando caducar� una respuesta dada por el servidor web. El formato de esta cabecera esta definido en el RFC850.

Ejemplo fecha sin caducar --> Sun, 17 Jan 2038 20:14:07 GMT

Ejemplo fecha caducada --> Wed, 26 Feb 2001 08:21:57 GMT

Last-Modified

Indica en una respuesta cuando el servidor considera que se modific� por �ltima vez la p�gina o objeto que proporciona. Si la cabecera Expires no est� presente, se toma este valor para determinar la caducidad. Cada Proxy y navegador utiliza su criterio, pero un ejemplo consistir�a en que si tenemos un objeto en el cach� desde hace 10 d�as y cuando se introdujo se sab�a que hab�a sido modificado 150 d�as antes, es l�gico considerar que todav�a no se habr� modificado.

X-Cache

Esta cabecera no pertenece a ning�n est�ndar, la consideramos ya que servidores Proxy como Apache o Squid la a�aden para indicar si la p�gina ha sido cogida desde el cach� o bien desde el servidor.

ValorSignificado
MISSLa p�gina no se ha servido desde el cach�.
HITLa p�gina se ha servido desde el cach�.

.�Fichero de auto-configuraci�n para navegadores

El fichero de auto-configuraci�n permite indicar a los navegadores que Proxy deben utilizar para realizar sus peticiones, de esta manera evitamos que el usuario sea el encargado de configurar manualmente su conexi�n a Internet.

El hecho de utilizar un fichero ya configurado permite adem�s, modificar el puerto y las IP's de los servidores Proxy sin tener que volver a re-configurar todos los navegadores.

.�Creaci�n del fichero

Para que el fichero pueda ser accesible desde cualquier navegador, podemos almacenarlo en un servidor web, en un directorio de red o en un servidor FTP, a continuaci�n se muestran los pasos para que el navegador pueda acceder a este fichero mediante Apache Web Server.

  1. A�adir la siguiente l�nea en el fichero /etc/mime.types que utiliza Apache Web Server para indicar al navegador (mediante la cabecera Content-Type), que tipo de fichero est� recibiendo.
    application/x-ns-proxy-autoconfig pac

    De esta manera indicamos que todos los ficheros .pac que sirve Apache se interpreten como ficheros de auto-configuraci�n.

  2. A�adir las siguientes l�neas en httpd.conf para que se pueda acceder al fichero de auto-configuraci�n mediante por ejemplo: http://host/proxy/proxy.pac
    Alias /proxy/ /ruta/del/fichero/
    <Directory /ruta/del/fichero>
      Options None
      AllowOverride None
      Order allow,deny
      Allow from all
    </Directory>
  3. Creamos el fichero proxy.pac con permisos de lectura para todos.
    touch /ruta/del/fichero/proxy.pac 
    chmod 644 /ruta/del/fichero/proxy.pac

.�Configuraci�n del fichero

El fichero proxy.pac que hemos creado en la secci�n anterior debe de ser escrito en JavaScript y presentar como "main" la funci�n FindProxyForURL(url, host), la cual recibe del navegador los dos argumentos especificados y devuelve a �ste un valor que le indica como debe de actuar, los valores de retorno posibles se describen a continuaci�n.

DIRECT
Indica al navegador que se conecte sin utilizar ning�n Proxy.
PROXY host:port
Permite indicar al navegador la IP y el puerto del Proxy.

Ejemplo

return "PROXY 192.168.0.87:3128";

A continuaci�n, presentamos un ejemplo del c�digo que debe de tener el fichero de auto-configuraci�n para que sea interpretado por los navegadores.

function FindProxyForURL(url, host)
{
<!-- Establecemos No Proxy for: -->
if (shExpMatch(url, "*.tu-dominio.org"))
  return "DIRECT";
<!-- Una red utiliza un Proxy -->
else if (isInNet(myIpAddress(), "192.168.0.0", "255.255.255.0"))
  return "PROXY 192.168.0.87:3128";
<!-- El resto utiliza otro Proxy -->
else
  return "PROXY 192.168.0.87:8087";
}

.�Configuraci�n de los clientes

El c�digo del fichero de auto-configuraci�n que hemos presentado es v�lido para navegadores como Mozilla y Netscape, donde funciona correctamente.

  1. Seleccionar en el men� de Mozilla y Netscape: Edit - Preferences - Advanced - Proxies

    En caso de Internet Explorer seleccionar: Herramientas - Opciones de Internet - Conexiones - Configuraci�n de LAN

  2. Introducir la siguiente l�nea en la opci�n:

    Automatic proxy configuration URL --> En Mozilla y Netscape

    Usar secuencia de comandos de configuraci�n autom�tica --> En Internet Explorer

    http://host/proxy/proxy.pac 
  3. Presionar la tecla Reload para activar los cambios en Mozilla y Netscape o reiniciar el navegador para que se lea el fichero en caso de Internet Explorer.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO