Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Сети > Кеширующий прокси |
Автор: DragonLand 27.8.2007, 12:48 |
Всем добрый день. Вот появилась необходимость написать небольшой свой Кеширующий прокси. Как написать просто прокси я нашёл и реализовал. Но работу с кешем я к нему прикрутить не смог. Пните куда копать. Заранее спасибо. |
Автор: ASGDeveloper 27.8.2007, 13:32 |
Скачай HandyCache. ![]() |
Автор: DragonLand 27.8.2007, 13:36 |
Я бы с радостью но надо самому писать ... так будет встроен в другую мою прогу. |
Автор: DragonLand 28.8.2007, 14:12 |
Ну что никто такого не делал чтоли :( |
Автор: Snowy 28.8.2007, 14:27 |
А что ты хочешь? Чтоб за тебя написали? Принцип прост: Запрашивается урл. Свотришь, есть ли на диске файл, соответствующий урлу. Если есть - отдаёшь его. Если нет - принимаешь, сохраняешь в файл, а потом уже отдаёшь. Далее ньюансы. Если запрос идёт с пометкой nocache - не проверяешь наличие в файле. Если аналогичная строка в ответе - не сохраняешь. Также нужно написать логику, которая будет следить, чтоб кэш не разростался, а, достигнув определённого размера, удалялись самые старые файлы. В принципе ничего сверхсложного - в основном работа руками, которую за тебя делать что-то не хочится... |
Автор: DragonLand 28.8.2007, 15:13 |
Я не прошу за меня написать ..... просто как мне отследить все запросы приходящие от сервера .... Ведь при запросе любой страницы .... кроме неё самой ещё будут подкачиваться и картинки и JS и CSS .... как всё это отловить |
Автор: DragonLand 28.8.2007, 16:04 |
Тогда извините. А как увидеть что приходит? Пните куда копать. Просто сам уже замучался искать. Поиск весь перерыл |
Автор: Snowy 28.8.2007, 16:13 |
Ну ты же прокси пишешь. Ты принимаешь запросы, ты отправляешь запросы, принимаешь ответы, отправляешь ответы. Как ты это делаешь - ты не сообщил. Но в любом случае, раз ты это делаешь, значит можешь и контролировать... |
Автор: DragonLand 28.8.2007, 16:22 |
Прокси написан простенький с помощью компонента TIdMappedPortTCP .... Если я правильно понял то мне надо в событии IdMappedPortTCPConnect ... проводить необходимые проверки .... ноо я никак не могу получить имя страницы или картинки которая пришла на сервер .... |
Автор: Snowy 28.8.2007, 16:35 | ||
Прокси запросов он выполнять не может. Максимум - он может перенаправлять их другому прокси, который их и будет уже выполнять. |
Автор: DragonLand 28.8.2007, 16:41 |
А какой компонент тогда использовать подскажи плз. |
Автор: Snowy 28.8.2007, 17:19 |
В Indy10 есть готовый TIdHTTPProxy |
Автор: DragonLand 28.8.2007, 17:35 |
ок .... скачаю посмотрю .... |
Автор: DragonLand 29.8.2007, 12:33 |
установил Indy10 но когда пытаюсь что то написать с помощью них пишет вот что IdSysWin32 was compiled with a different version of IdException.EIdException как исправить |
Автор: Snowy 29.8.2007, 12:37 |
Сначала удали 9-ю версию, а потом ставь 10-ю. Вместе им тесновато будет - классы и модули имеют одинаковые имена. |
Автор: DragonLand 29.8.2007, 12:44 |
ок .... попробую что то не получается .... как правильно удалять надо |
Автор: SAVANE 1.9.2007, 09:03 |
Аналогично. Пол борланда переудалял скоро и делфи не запущу а при установке говорит все равно что установлена другая версия инди. В форуме видил последовательность удаления а найти не могу. Помогите кто чем может. |
Автор: Snowy 1.9.2007, 11:18 |
1. Меню Component -> Install Packages - Выбрать Indy и нажать кнопу Remove 2. В папке Sources удалить папку Indy 3. В папке Lib удалить все dcu, начинающиеся на id 4. В папке Bin удалить dclindy70.bpl Вроде всё... |
Автор: SAVANE 1.9.2007, 12:05 |
Все коректно удалил. Даже Делфи. Переставил и вот борода ставлю автоматически распаковіваємій пакет и ничего |
Автор: MetalFan 1.9.2007, 15:08 |
вообще http://www.indyproject.org/Sockets/Docs/Indy10Installation.EN.aspx есть подробный мануал как их ставить вручную... ибо для последней версии инсталлятора нет. |
Автор: SAVANE 2.9.2007, 00:03 |
Я свою проблему решил. Огромная благодарность. |
Автор: zedx 10.6.2008, 15:24 | ||
Вот, такая же проблема... подкиньте кто-нибудь готовый примерчик кэширующего прокси? |
Автор: zedx 11.6.2008, 23:56 |
чё все такие жадные ![]() Блин, пол инета перерыл - и ничего толкового. Простой прокси на indy я сделал, а как дальше, как запросы его читать, как вмешиваться в процесс? как кэшировать? как брать из кэша? ни литературы, ни статей, ни примеров.... |
Автор: ТипТопыч 19.12.2008, 22:19 | ||
Поковырял малость indy, по умолчанию в нем нет поддержки локального кэша. Выкладываю измененный IdHTTPProxyServer.pas, вдруг кому пригодится. Использование:
URLEncode/URLDecode взяты отсюда: http://www.torry.net/dpfl/dzurl.html |