PDA

Просмотр полной версии : HTTP прокси метод connect


_nic
28.10.2009, 21:49
Ни у кого нет примеров(С\С++) как это работает?

slesh
29.10.2009, 00:23
А что тут сложного? это еще проще чем обычный. Действия такие:
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"
и закрывай соединение

_nic
29.10.2009, 00:29
Я не про сервер.А как со стороны клиента.
ЗЫ:но в принципе теперь уже понятно :D

slesh
29.10.2009, 01:28
клиент шле т примерно такие данные:
CONNECT www.site.com:port HTTP/1.1
CONNECT www.site.com HTTP/1.1
и если получил 200 OK то уже может посылать какие угодно данные.