como funciona o 'proxy' http?

Procurei na web algo sobre o 'proxy' de http. Li wiki-Artigos sobre o servidor proxy. Mas ainda não entendo como funciona o proxy http, estúpido.

Aqui está a minha suposição sobre como funciona o 'proxy' http: Se eu definir o 'proxy' de http para um específico, diga Proxy_ a, então quando eu iniciar o chrome / IE, digite um URL específico, diga URL_ a, o chrome/IE envia o pedido diretamente para Proxy_ a, então o Proxy_A envia o pedido para o verdadeiro servidor de URL_A?

 39
Author: BoltClock, 2011-08-23

2 answers

Um 'proxy' HTTP fala o protocolo HTTP, ele é especialmente feito para conexões HTTP, mas pode ser abusado para outros protocolos também (o que já é meio padrão)

O navegador (cliente) envia GET http://SERVER/path HTTP/1.1 para o PROXY
Agora o PROXY irá encaminhar o pedido real para o servidor.
O servidor só verá o PROXY como conexão e responderá ao PROXY assim como a um cliente.
O PROXY recebe a resposta e envia-a de volta para o cliente.

É um processo transparente e quase como comunicar diretamente com um servidor, então é apenas uma pequena sobrecarga para o navegador implementar um proxy HTTP.
Há alguns cabeçalhos adicionais que podem ser enviados para identificar o cliente, revelar que ele está usando um proxy.
Proxies às vezes mudam/adicionam conteúdo dentro do fluxo de dados para várias finalidades.
Alguns proxies, por exemplo, incluem o seu IP real em um cabeçalho HTTP especial que pode ser logado do lado do servidor, ou interceptado em seus scripts.

CLIENT <---> PROXY <---> SERVER

Actualizar:
relacionado com o uso de proxies como uma característica de segurança/privacidade
Como você pode ver no ascii acima, não há comunicação direta entre cliente e servidor. Ambas as partes só falam com o representante entre elas.
Em mundos modernos, o cliente muitas vezes é um navegador e o servidor muitas vezes é um servidor web (Apache, por exemplo).

Nestes ambientes, os utilizadores confiam frequentemente que o PROXY seja seguro e não divulgue a sua identidade.
No entanto, existem muitas maneiras possíveis de arruinar este modelo de segurança devido a complexos frameworks de software rodando no navegador.
Por exemplo, applets Flash ou Java são um exemplo perfeito de como uma conexão proxy pode ser quebrada, Flash e Java ambos podem não se importar muito com as configurações de proxy de sua aplicação-mãe (navegador).
Outro exemplo são os pedidos de DNS que podem chegar ao servidor de nomes de destino sem PROXY, dependendo do PROXY e da configuração da aplicação.
Outro exemplo seria cookies ou sua pegada de meta navegador (resoluição, tempos de resposta, agente de usuário, etc.) que tanto pode identificá-lo se o servidor web já o conhece do passado (ou encontra-o novamente sem proxy). E no final, o proxy em si precisa ser confiável pois ele pode ler todos os dados que passam por ele e no topo ele pode até ser capaz de quebrar a sua segurança SSL (leia sobre o homem no meio)

Onde obter proxies de
Proxies pode ser comprado como um serviço, digitalizado para ou simplesmente correr sozinho.

Proxies públicos
Estes são os proxies mais usados e o termo usual "público" é bastante enganador.
O melhor termo seria "proxies abertos". Se você executar um servidor proxy sem firewall ou autenticação qualquer um No mundo pode encontrá-lo e abusar dele.
A grande maioria das empresas que vendem proxies apenas digitaliza a internet para tais proxies ou eles usam computadores hacked windows (botnets) e vendê-los para a maioria ilegal / spam actividade.
A maioria dos países modernos pode ver o uso de um proxy aberto sem autorização como abuso, é uma coisa muito comum, mas pode realmente levar ao tempo de prisão.
É possível pesquisar por proxies, procurando na internet por portas abertas, UM programa livre típico seria https://nmap.org
Como uma palavra de cautela: maior scanning escalado vai quase certamente obter sua conexão de internet banido pelo seu ISP.

Proxies pagos
Aqui temos 4 tipos de proxies:
1) proxies públicos pagos (abertos)
Basicamente, esses vendedores vendem ou revendem enormes listas de proxies que são regularmente atualizados para remover os mortos.
Os proxies são abusados em grande escala e geralmente na lista negra na maioria dos sites, incluindo o Google.
Além disso, esses proxies são geralmente muito instáveis e muito lentos.
A grande maioria desses proxies estão simplesmente abusando de servidores configurados erradamente. É um "mercado" muito competitivo, Google vai levar a muitos exemplo. 2) proxies pirateados (botnet) pagos
Estes estão abusando de computadores, principalmente internet-of-things ou Windows desktops como servidores proxy. Os atacantes usam - nos em grande escala para vários fins ilegais.
Os vendedores costumam chamá-los de "proxies residenciais" para esconder a natureza ilegal deles.
O uso de tal proxy é, sem dúvida, ilegal e o usuário abusado pode facilmente logar" seu " IP se você se conectar a ele, incluindo a possibilidade de sequestrar sua conexão com o destino.
Dependendo da fonte que esses IPs não estão na lista negra, então a "qualidade" é muito melhor do que os proxies públicos.
3) proxies partilhados pagos
Estes são proxies datacenter, geralmente legais e potenciais com um uplink rápido.
Devido ao fato de que há tanto spam e-commerce acontecendo nesses IPs são maciçamente abusados e geralmente encontrados em listas negras.
Uma utilização típica seria a evasão às restrições craigslist ou geo-restrictions.
4) pagos proxies privados / dedicados
"privado" significa dedicado. Se o operador é profissional, significa que o seu proxy não é partilhado entre outras pessoas.
Estes são frequentemente usados para atividades mais profissionais e legais, especialmente quando o IP proxy é alugado por um período mais longo.
Um operador bem conhecido seria https://us-proxies.com

Proxies próprios
Executando um proxy próprio também é possível, existem vários projetos de código aberto disponíveis.
A maior parte o servidor 'proxy' usado é https://squid-cache.org

 49
Author: John, 2018-01-09 04:20:06

Para adicionar à grande resposta do John acima, um passo importante é o aperto de mão inicial de ligação entre o PROXY e o cliente. A partir do Websocket RFC

CONNECT example.com:80 HTTP/1.1
Host: example.com

Este é o mesmo pedido que um cliente usa para abrir um túnel SSL, que essencialmente usa um proxy

 9
Author: trik, 2016-01-30 00:12:07