Existem vários tipos de proxies, e cada um usa uma abordagem diferente para comunicar ao servidor proxy o que ele deseja fazer.
Os proxies HTTP entendem somente HTTP, e não tentam pacotes proxy, mas sim comandos HTTP como connect, get, post, etc. Eles criam um pacote totalmente novo endereçado nas camadas inferiores de si para o servidor de destino. Quando um cliente inicia uma conexão, o primeiro pacote do fluxo http contém o verbo CONNECT. o proxy recebe, faz um dns de pesquisa, se necessário, e constrói um pacote para enviar ao servidor remoto usando os comandos http e o fluxo de dados dos pacotes que recebe do cliente.
Os proxies SOCKS realizam o tunelamento acima da camada de sessão, de modo que o cliente configura um cabeçalho de camada 5 que informa ao proxy onde você deseja se conectar, transporta informações de protocolo e transmite qualquer autenticação requerida pelo proxy. O cliente coloca os datagramas da Camada 6/7 na região de dados do segmento da camada 5 e os envia ao proxy. o proxy o recebe, cria um novo pacote (sem um cabeçalho SOCKS) endereçado ao servidor remoto, coloca as unidades de dados da camada 6/7 do pacote do cliente no novo pacote e as envia para o servidor de destino. Os proxies SOCKS não funcionam para todos os protocolos da camada superior, mas eles fazem proxy para a maioria dos protocolos de camada inferior, incluindo tcp e udp.