Показать сообщение отдельно

  #20  
Старый 14.12.2008, 00:55
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
С нами: 9679872

Репутация: 347
По умолчанию

SOCKS здесь вряд ли возможен исходя из самого механизма обращения к прокси.
То есть алгоритм такой:
1. perl-скрипт принимает HTTP-запрос и передает POST-параметром к php-скрипту
2. PHP-скрипт принимает POST-параметр и с помощью сокетов посылает целевому серверу, все что вернул ему сервер отправляет назад perl-скрипту

для реализации обычного HTTP-запроса этого достаточно. Но SOCKS предусматривает создание постоянного канала, то есть многократный прием и передачу данных. А как передавать данные скрипту второй раз? При таком подходе это невозможно!
HTTPS прокси или HTTP CONNECT прокси по сути тот же SOCKS-прокси, так как для подключения к HTTPS нужен сложный протокол - передача сертификатов и т.д.

Но если цель не создание полноценного HTTPS-прокси а например просто зайти через прокси на сайт, расположенный на https то все же можно например придумать следующий алгоритм:
1. perl-скрипт принимает запрос как HTTP-прокси (!) и передает его POST-параметром PHP-скрипту
2. PHP-скрипт с помощью curl посылает этот запрос целевому серверу и т.д.

в теории это возможно, но при этом возникает некоторые проблемы:
- как браузер будет сообщать perl-скрипту что целевой хост именно на https а не на http
- на сервере с PHP-прокси будет возникать проблемы c памятью - ведь PHP-скрипту необходмо сначала полностью принять результат и только потом он сможет передать результат и освободить занятую память. (подобно проблемам с памятью в текущей версии perl-скрипта)

Плюс еще не на каждом сервере curl доступен

P.S. Посмотрел исходник HTTPTunnel. Можно использовать IPC, тогда все проблемы сразу решаются...

Последний раз редактировалось bons; 14.12.2008 в 12:03..
 
Ответить с цитированием