Плиз помогите с проектом. Каким образом можно сделать?
От: tatarinNSK  
Дата: 09.12.05 07:11
Оценка:
Нужно написать ускоритель DialUp-а. простой прокси уже дан.
Главная проблема в том, как проверить нет ли уже запрашиваемого сайта в кэше программы (и, что тоже вызывает неболшое затруднение-ускоритель должен быть независимым от браузера).
Мне не нужен код, а просто идея как это сделать.
Re: Плиз помогите с проектом. Каким образом можно сделать?
От: stasukas  
Дата: 09.12.05 09:30
Оценка: 1 (1)
Здравствуйте, tatarinNSK, Вы писали:

NSK>Нужно написать ускоритель DialUp-а. простой прокси уже дан.

NSK>Главная проблема в том, как проверить нет ли уже запрашиваемого сайта в кэше программы (и, что тоже вызывает неболшое затруднение-ускоритель должен быть независимым от браузера).
NSK>Мне не нужен код, а просто идея как это сделать.

Главная идея — это собственная реализация прокси-сервера.
Для примера можно посмотреть на squid и другие аналоги

идея же заключается в следующем:

1. прокси слушает на выбранном порте запросы от браузера,
2. смотрит, есль ли запрашиваемый ресурс в собственном кеше,
3. если нет ресурса в кеше, то:
a. запрашивает ресурс извне,
b. кладет его к себе в кеш,
c. отдает браузеру ресурс,
4. если ресурс есть в кеше, то:
a. если истек период кеширования ресурса, то см. пункт 3,
b. забирает ресурс из собственного кеша,
c. отдает браузеру ресурс,

Естественно, браузер должен быть настроен на работу через этот прокси.

Вот ссылки на стандарты
RFC 2186 ICPv2 – Protocol
RFC 2187 ICPv2 – Application
RFC 1016

RFC 2616 HTTP/1.1
RFC 2068 HTTP/1.1 obsolete

И в заключение задам вопрос:
А зачем это надо? Ведь придется делать полную реализацию стандартов. Есть аналоги, в том числе и бесплатные.
... << RSDN@Home 1.2.0 alpha rev. 619>>
Now playing: Armin van Buuren — A State Of Trance 2004 (CD1)
Re[2]: Плиз помогите с проектом. Каким образом можно сделать
От: tatarinNSK  
Дата: 09.12.05 10:19
Оценка:
stasukas, спасибо!
но проблема в том, что соответствующий прокси уже дан, а кэш должен сохраняться у пользователя на машине
(как в Firefox`e).

сейчас меня мучает только один вопрос: как перехватить запрос клиента (какой сайт выбрал, что кликнул на сайте...);-система не зависит от браузера;

пожалуйста, подскажите кто чем может — очень нужно!
Re[3]: Плиз помогите с проектом. Каким образом можно сделать
От: savaDAN  
Дата: 09.12.05 11:36
Оценка:
Я так понимаю ты пишешь что-то вроде трафик компрессора (как например www.toolnet.net)?

Если нужен перехват в любом случае (независимо от желания клиента) — надо писать некий аналог firewall-а который будет перехватывать запросы браузера, и возвращать ему нужный контент.
Если перехват добровольный — то просто нужно написать аналог прокси сервера, который будет крутиться на компьютере пользователя, и который пользователь будет у себя в настройках браузера указывать как прокси сервер.

Решать когда обращаться к прокси серверу, а когда брать страничку из своего браузерного кэша — браузер отлично умеет и сам, и тут ему лучше не мешать

Как это все крутится вживую можешь посмотреть на том же самом www.toolnet.net

NSK>stasukas, спасибо!

NSK>но проблема в том, что соответствующий прокси уже дан, а кэш должен сохраняться у пользователя на машине
NSK>(как в Firefox`e).

NSK>сейчас меня мучает только один вопрос: как перехватить запрос клиента (какой сайт выбрал, что кликнул на сайте...);-система не зависит от браузера;


NSK>пожалуйста, подскажите кто чем может — очень нужно!
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[3]: Плиз помогите с проектом. Каким образом можно сделать
От: stasukas  
Дата: 09.12.05 11:36
Оценка:
Здравствуйте, tatarinNSK, Вы писали:

NSK>но проблема в том, что соответствующий прокси уже дан, а кэш должен сохраняться у пользователя на машине

NSK>(как в Firefox`e).
Можно поставить кеширующий прокси на локальную машину и настроить его пользоваться дополнительным внешним прокси (при необходимости).

NSK>сейчас меня мучает только один вопрос: как перехватить запрос клиента (какой сайт выбрал, что кликнул на сайте...);-система не зависит от браузера;

Все, что надо я описал в предыдущем посте. Ковырять надо оттуда
... << RSDN@Home 1.2.0 alpha rev. 619>>
Now playing: Armin van Buuren — A State Of Trance 2004 (CD2)
Re[4]: Плиз помогите с проектом. Каким образом можно сделать
От: tatarinNSK  
Дата: 09.12.05 11:40
Оценка:
Всё, ребят, спасибо огромное за помощь и потраченное время!
Re[2]: Плиз помогите с проектом. Каким образом можно сделать
От: tatarinNSK  
Дата: 09.12.05 15:26
Оценка:
Нет, все-таки тема не закрыта
тут небольшое уточнение: ускорение может быть отключено клиентом. Как внешний прокси об этом узнает?
т.е. когда я запрашиваю сайт и картинки уже есть в кэше, то внешнему как-то надо подать команду, что скачивать без картинок. как это сделать. Еще нужно сжатие текста и тоже отключаемое.
В общем, как проинформировать внешний(как я понимаю, внутренний просто отключается) прокси о состоянии вкл\выкл?
Re[3]: Плиз помогите с проектом. Каким образом можно сделать
От: Аноним  
Дата: 09.12.05 15:32
Оценка:
Здравствуйте, tatarinNSK, Вы писали:

NSK>Нет, все-таки тема не закрыта

NSK>тут небольшое уточнение: ускорение может быть отключено клиентом. Как внешний прокси об этом узнает?
NSK>т.е. когда я запрашиваю сайт и картинки уже есть в кэше, то внешнему как-то надо подать команду, что скачивать без картинок. как это сделать. Еще нужно сжатие текста и тоже отключаемое.
NSK>В общем, как проинформировать внешний(как я понимаю, внутренний просто отключается) прокси о состоянии вкл\выкл?

страница качаются отдельно, картинки отдельно (отдельными GET запросами). Посему если картинка уже есть то просто не делай GET для нее а сразу отдавай из кеша. И RFC почитай
Re[4]: Плиз помогите с проектом. Каким образом можно сделать
От: tatarinNSK  
Дата: 10.12.05 09:21
Оценка:
даже стыдно еще один вопрос задавать
но придеться-нужно добавить сжимание текста в реальном времени на внешнем прокси и его разархивирование наа внутреннем ребят, очень надо, плиз помогите, а то до понедельника точно не успею
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.