Encadeamento de proxy: como funciona exatamente?

0

Então, eu sei sobre proxies básicos e como eles enviam a conexão para o destino de forma transparente. Eu simplesmente não conseguia entender como os proxies de encadeamento funcionam.

Por exemplo, eu tenho essa cadeia: proxy1 -> proxy2 -> proxy3 -> proxy4 -> destination .

Como nos proxies únicos normais, nosso pedido é enviado ao proxy, que o encaminha ao destino e envia a resposta de volta. Mas, no encadeamento de proxy, como o proxy1 sabe que precisa encaminhar a solicitação para proxy2 , e assim por diante, em vez de encaminhá-la diretamente para o destino?

É por causa de algum tipo de cabeçalho nas solicitações que enviamos para a cadeia de proxy, que informa adequadamente aos proxies para encaminhar as solicitações ao próximo proxy?

    
por jazz 28.05.2017 / 22:30

1 resposta

0

Eu acho que é sobre o método HTTP "CONNECT" .

In this mechanism, the client asks an HTTP proxy server to forward the TCP connection to the desired destination. The server then proceeds to make the connection on behalf of the client. Once the connection has been established by the server, the proxy server continues to proxy the TCP stream to and from the client. Note that only the initial connection request is HTTP - after that, the server simply proxies the established TCP connection.

A última sentença é a chave. Você pede ao proxy1 para fazer o proxy da conexão para proxy2 . Então tudo que você envia vai para proxy2 a proxy1 , que não interpreta mais, então você pede para fazer proxy para proxy3 e esta requisição é capturada e interpretada por proxy2 . A próxima solicitação CONNECT (para proxy para proxy4 ) passará por proxy1 e proxy2 , será interpretada por proxy3 - e assim por diante. Todo proxy na cadeia interpreta exatamente um pedido CONNECT.

Cuidado com isso

Not all HTTP proxy servers support this feature, and even those that do may limit the behaviour.

Nota final: enquanto experimenta, você pode ter problemas em encadear proxies se o programa que você executar usar GET ao invés de CONNECT. GET não permite encadeamento, isso é coberto aqui . Sua confusão sobre o encadeamento de proxy pode ser porque você está mais familiarizado com (ou seja, você pensa em termos de) o mecanismo GET.

    
por 28.05.2017 / 23:06

Tags