Um proxy pode atuar no nível de aplicação (mais comum), onde para cada aplicação há um proxy diferente (ex.: proxy HTTP, proxy FTP, proxy H.323 e outros) ou no nível de transporte, onde há um proxy genérico para conexões TCP e UDP (ex.: Socks ou Sockets).
Os proxies de aplicação possuem a vantagem de entender o protocolo de aplicação, de modo que eles são capazes de prover registros detalhados sobre os acessos realizados, além de permitir o controle de acesso através de parâmetros de aplicação, como bloquear o acesso a arquivos executáveis em conexões HTTP, controle impossível de ser realizado apenas com filtros de pacotes. Por outro lado, a aplicação em questão deve estar ciente da existência do Proxy para realizar o acesso normalmente através de um parâmetro de configuração, o que pode aumentar a complexidade da configuração.
Outra questão a ser considerada é que o servidor deve ser dimensionado adequadamente para comportar as requisições dos clientes, de modo a não causar atrasos nas conexões.
Na figura acima o proxy de aplicação localiza o Server (Servidor de Destino) após a análise das informações do protocolo de aplicação.
Uma vez configurado corretamente, o usuário não percebe mais a existência do Proxy de aplicação, de modo que tem a impressão de que as requisições são feitas diretamente ao servidor. O Proxy, por outro lado, possui conhecimento detalhado sobre os recursos que estão sendo solicitados pelo cliente.
É o protocolo da Internet que permite que aplicações cliente-servidor usem transparentemente o serviço de uma rede ao firewall.
X