Para usar um proxy HTTP, a solicitação é enviada do cliente para o endereço IP do servidor proxy e não para o servidor de destino. O proxy deve então ler o cabeçalho HTTP para extrair o URI da solicitação . O request-URI inclui o nome ou o IP do servidor de destino e o servidor proxy usa essas informações para encaminhar a solicitação.
A especificação HTTP permite que a linha de solicitação exclua o nome e a porta do servidor quando um proxy não for usado (pois isso seria desnecessário se a solicitação fosse enviada diretamente para esse servidor). Mas, de acordo com as especificações ...
O formulário absoluteURI é NECESSÁRIO quando a solicitação está sendo feita para um proxy.
Portanto, quando não estiver usando um proxy, a linha de solicitação poderá se parecer com:
GET /robots.txt HTTP/1.1
mas para usar um proxy, a linha deve incluir o nome do servidor (e a porta, se não for 80):
GET http://httpbin.org:80/robots.txt HTTP/1.1
O lado da resposta, se a operação puder ser mais simples, pois o servidor proxy pode simplesmente retransmitir a resposta literal por meio do soquete de solicitação pré-estabelecido.