![]() |
HTTP прокси метод connect
Ни у кого нет примеров(С\С++) как это работает?
|
А что тут сложного? это еще проще чем обычный. Действия такие:
1) тупо считываешь целеком HTTP запрос 2) Ищи первый пробел. после него начинается домен. 3) ставиш указатель на начало домента и запоминаеш его. 4) далее ищи опять пробел начиная с имени домена 5) как нашел пробел так замени его на 0x00 6) начиная от имени домена ищи символ : 7) если его нет, то дефолтовый порт = 80 8) если есть : то заменяй его на 0x00 а то, что после него прогоняй через atoi и получай номер порта. 9) коннектся на нужный домен и порт 10) если всё норм то посылаеш "HTTP/1.1 200 OK\r\n\r\n" и затем делай обычный портмаппинг 11) если не смог подрубиться то посылай "HTTP/1.0 502 Bad Gateway\r\nContent-Length: 15\r\n\r\n502 Bad Gateway" и закрывай соединение 12) если при парсинге заголовка возникла ошибка (чтото не нашел) то посылай "HTTP/1.0 400 Bad Request\r\nContent-Length: 15\r\n\r\n400 Bad Request" и закрывай соединение |
Я не про сервер.А как со стороны клиента.
ЗЫ:но в принципе теперь уже понятно :D |
клиент шле т примерно такие данные:
CONNECT www.site.com:port HTTP/1.1 CONNECT www.site.com HTTP/1.1 и если получил 200 OK то уже может посылать какие угодно данные. |
| Время: 14:48 |