Capítulo 7 - WWW Proxy Server


Um servidor de proxy World Wide Web (WWW), ou simplesmente servidor de proxy Web, é um servidor Hyper-Text Transfer Protocol (HTTP) especializado. A utilização primária de um servidor proxy é permitir acesso a Internet para clientes que estejam por trás de um firewall1. Qualquer um atrás de um firewall pode, então, acessar completamente a Internet passando por um host firewall com o mínimo de esforço e sem comprometer a segurança.

O servidor proxy espera pelas requisições dos clientes de dentro do firewall e repassa estas requisições para um servidor Internet remoto, fora do firewall. O servidor proxy recebe as respostas do servidor externo e então, envia-as de volta ao cliente interno.

No caso mais usual, todos os clientes dentro de uma mesma sub-rede usam o mesmo servidor de proxy. Isto permite ao proxy fazer cache2 eficiente de todos os documentos que são requisitados por um certo número de clientes. Os clientes sob os servidores proxy sentem-se como se estivessem recebendo os documentos diretamente do servidor remoto.

A habilidade que o proxy tem no uso do cache torna-o atrativo para aqueles que não estão dentro do firewall. Configurar um servidor proxy é fácil e os mais populares programas clientes Web já tem suporte a essa ferramenta. Sendo assim, torna-se simples a tarefa de configurar um grupo de trabalho inteiro para usar o serviço de cache do proxy. Isto reduz os custos com tráfego de rede porque muitos documentos que são requisitados são lidos do cache local.

Clientes sem Domain Name Service (DNS) também podem usar a Web. O endereço IP do proxy é a única informação realmente necessária. Organizações usando endereços, por exemplo, classe A (como 10.*.*.*), em suas redes particulares, podem ainda acessar a Internet contanto que o proxy seja visível tanto para a rede particular como para a Internet [Process97].

Muitos servidores proxy são implementados através de um método de acesso simples. Porém, alguns servidores proxy podem aceitar ou não as requisições Internet, de acordo com o protocolo destas requisições. Em alguns casos, o servidor proxy pode permitir chamadas de servidores File Transfer Protocol (FTP) enquanto recusa chamadas de servidores HTTP.

7.1 - Objetivos

Pode-se utilizar um servidor proxy com diversos objetivos, incluindo [Process97]:

7.1.1 - Acesso à Internet

Algumas máquinas de uma rede local podem não estar habilitadas para acessar os recursos da Internet diretamente. Deste modo, alguns navegadores não estão habilitados para acessar os recursos da Internet diretamente por estarem rodando em sistemas sob um firewall de proteção. Neste caso, o servidor proxy pode enviar os documentos solicitados por estes navegadores.

Na figura 7.1, o servidor proxy está rodando em um host com firewall e faz conexões com servidores externos usando o software firewall.

O servidor proxy recebe a requisição do navegador em formato de URL. O servidor, então, analisa a informação requisitada, converte-a para o formato HTML e a envia para o navegador dentro do firewall. O servidor proxy pode manejar todas as requisições da rede, se ele for o única máquina diretamente conectada à Internet.


Figura 7.1 - Esquema de Trabalho de um Servidor Proxy

7.1.2 - Cache de Documentos

Usualmente, os clientes dentro de uma mesma sub-rede acessam a um mesmo servidor proxy. Alguns servidores mantém um cache de documentos Internet para clientes dentro de um rede local. Cache de documentos significa manter uma cópia local de um documento Internet, evitando que o servidor requisite este documento mais vezes.

O cache é mais efetivo se realizado em um servidor proxy do que no sistema cliente. Isto minimiza o espaço de disco utilizado, uma vez que apenas uma cópia do documento é feita. O cache de documentos no servidor proxy permite que documentos muitas vezes referenciados por múltiplos navegadores possam ser disponibilizados através do servidor proxy com maior eficiência.

Através do acesso ao cache é possível acessar a Internet mesmo que o servidor HTTP, ou a rede externa, estejam com problemas e fora de funcionamento. O acesso as informações mantidas no servidor proxy, possibilita também uma melhoria na utilização dos recursos da rede, como o acesso a servidores FTP que normalmente estão fora de funcionamento ou muito cheios, mais que podem ter seus arquivos armanezados localmente.

Existem muitos problemas que necessitam ser resolvidos quando o uso do cache é introduzido, tais como: qual o tempo tempo máximo de armazenamento de um documento e como decidir quais documentos valem a pena serem colocados no cache.

A especificação do tempo de vida de documentos foi prevista pelo protocolo HTTP que contém um objeto especificando a data em que o documento já não será mais válido. Entretanto, existem muito poucos servidores que atualmente fornecem essa informação. Portanto é necessário confiar em estimativas heurísticas, que nos dão uma estimativa grosseira do tempo de vida do documento [Giorgi96].

7.1.3 - Controle Seletivo do Acesso à Internet

Quando se utiliza um servidor proxy é possível filtrar as transações dos clientes no nível de protocolo. O servidor proxy pode controlar o acesso aos serviços, para métodos individuais, hosts e domínios. Alguns servidores proxy permitem :

7.2 - WWW Proxy Server

7.2.1 - Comunicação Através de um Servidor HTTP

Muitos clientes têm um endereço IP próprio e uma conexão direta com a Internet. Quando uma requisição HTTP normal é feita por um cliente, o servidor identifica somente o path e a "porção chave" da URL requisitada, conforme indicado na figura 7.2; outras partes da URL, como o especificador de protocolo "http:" e o nome do servidor são claros para o servidor HTTP remoto. O path requisitado especifica um documento ou um script CGI no sistema de arquivos local do servidor; ou ainda algum outro recurso disponível daquele servidor.


Figura 7.2 - Requisição de um documento a um servidor remoto

Quando um usuário digita:

http://www.empresaX.com.br/documentos/Proxy.html

O navegador converte para:

GET /documentos/Proxy.html

O navegador conecta-se ao servidor rodando no endereço www.empresaX.com.br, envia o comando e espera por uma resposta. Neste exemplo, o navegador fez uma requisição a um servidor HTTP especificando o recurso requisitado. Não há especificação de protocolo ou nome de host na requisição.

A requisição especificou o path (diretório de dados) da informação e o documento Proxy.html localizado no diretório de dados. A resposta é um documento ou uma mensagem de erro.

7.2.2 - Comunicação Através de um Servidor Proxy

O servidor proxy atua tanto como um sistema servidor, quanto como um sistema cliente. Ele é um servidor quando aceita, por exemplo, uma requisição HTTP de um navegador, e age como um cliente quando se conecta ao servidor remoto para requerer um documento.

O servidor proxy usa o campo cabeçalho da requisição passada pelo navegador, quando ele vai se conectar ao servidor remoto. Isto significa que o navegador não perde sua funcionalidade quando está conectado através de um proxy.

Um servidor proxy completo deve ser capaz de se comunicar com todos os protocolos Web, sendo os mais importantes os seguintes: HTTP, FTP, Gopher, e WAIS. Proxies que trabalham com apenas um protocolo Internet, como o HTTP, são possíveis, porém o navegador Web pode acessar outros servidores proxy para utilizar todos os protocolos Internet.

Quando um navegador envia uma requisição, estando sob um servidor proxy, o navegador sempre usa o protocolo HTTP para as transações com o servidor proxy. Isto acontece mesmo quando o navegador quer acessar o servidor remoto usando outro protocolo, como o FTP.

Ao invés de especificar apenas o diretório de dados e o documento requerido ao servidor proxy, o navegador deve especificar toda a URL. Deste modo o servidor proxy tem toda a informação necessária para fazer a requisição ao servidor remoto especificado na URL requisitada, utilizando o protocolo especificado.

A única diferença entre uma transação HTTP normal e uma utilizando proxy, é que a transação usando o servidor proxy requer a URL completa do documento.

Quando utilizamos um servidor proxy como um sistema cliente, ele age como um navegador nas transações de documentos. Um exemplo típico de requisição HTTP via proxy é mostrado abaixo [Process97]:

Quando um usuário digita :

http://www.empresaX.com.br/documentos/Proxy.html

O navegador converte a URL para :

GET http://www.empresaX.com.br/documentos/Proxy.html

O navegador então conecta-se ao servidor proxy e este provê a conexão com a Internet. O servidor proxy converte a requisição para :

GET /documentos/Proxy.html

O servidor proxy conecta-se ao servidor rodando em www.empresaX.com.br, envia o comando e espera por uma resposta. Quando recebe a resposta, o proxy repassa-a ao cliente.

A figura 7.3 mostra um navegador fazendo uma requisição ao servidor proxy usando o protocolo HTTP e especificando a URL completa. A figura mostra ainda, que a URL passada entre o servidor proxy e o servidor remoto não especifica o nome do host remoto nem o protocolo HTTP.


Figura 7.3 - Requisição de um documento através de um servidor proxy



Sumário | Resumo | Cap. 1 | Cap. 2 | Cap. 3 | Cap. 4 | Cap. 5 | Cap. 6 | Cap. 7
Referências Bibliográficas | Bibliografia Consultada