Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Цепочка из http прокси  (Прочитано 12672 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
perl6
Помогающий

ru
Offline Offline

« : 25-12-2017 01:15 » 

Приветствую. Собственно, как? Для соксов есть модуль LWP::Protocol::http::SocksChain (для lwp движка).
А как быть с http? Нарыл вот, что можно используя метод Connect соединяться, но не пойму, как все это реализовать. А готового модуля на cpan'e не увидел.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 25-12-2017 07:36 » 

Не могу понять, что ты спрашиваешь.
Метод CONNECT используется для изменения протокола.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
perl6
Помогающий

ru
Offline Offline

« Ответ #2 : 29-12-2017 22:19 » 

Я вот про это

Цитата
Thanks for the quick reply. I was mistaken about MSIE's capabilities, my apologies.
However, HTTP does indeed permit this, via the CONNECT method as described in RFC 2616:
This specification reserves the method name CONNECT for use with a proxy that can dynamically switch to being a tunnel (e.g. SSL tunneling 44).
RFC 2817 details usage of the CONNECT method:
5.2 Requesting a Tunnel with CONNECT
A CONNECT method requests that a proxy establish a tunnel connection on its behalf. The Request-URI portion of the Request-Line is always an 'authority' as defined by URI Generic Syntax 2, which is to say the host name and port number destination of the requested connection separated by a colon:
CONNECT server.example.com:80 HTTP/1.1
Host: server.example.com:80
To "chain" two proxies, one simply sends a CONNECT to the first proxy, requesting to connect to the second proxy. Once the tunnel is established, normal GET requests with a fully-qualified URI can be used. This works.
I know HTTP, I just want to coax Perl into speaking this portion of the specification. Can I, using the standard modules? I searched LWP documentation for any mention of the CONNECT method, but couldn't find any occurances... are there any other HTTP modules which fully support the HTTP/1.1 spec, or do I have to write my own?
Записан
perl6
Помогающий

ru
Offline Offline

« Ответ #3 : 29-12-2017 22:21 » 

Ключевая фраза тут

Цитата
To "chain" two proxies, one simply sends a CONNECT to the first proxy, requesting to connect to the second proxy. Once the tunnel is established, normal GET requests with a fully-qualified URI can be used. This works.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 29-12-2017 22:58 » 

Да, это можно. Если только прокси не смотри трафик и не ограничивает.

Модули тут не нужны, нужен поток. Подключись к проксе, запиши в поток команду, потом запиши вторую, потом отправь запрос, получи ответ и пропарсь. Подготовить запрос через HTTP::Request, пропарсить через HTTP::Response.

Предварительно полистай RFC.

Код: (Perl)
use HTTP::Request;

my $req = HTTP::Request->new(CONNECT => 'http://someproxy.com/', [Host => 'http://google.com', 'User-Agent' => 'perl/5']);
$req->protocol('HTTP/1.1');
say $req->as_string;
CONNECT http://someproxy.com/ HTTP/1.1
Host: http://google.com
User-Agent: perl/5

Куда тут подставлять путь и строку запроса, см в RFC.
« Последнее редактирование: 29-12-2017 23:23 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines