![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
DragonLand |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
Всем добрый день.
Вот появилась необходимость написать небольшой свой Кеширующий прокси. Как написать просто прокси я нашёл и реализовал. Но работу с кешем я к нему прикрутить не смог. Пните куда копать. Заранее спасибо. |
|||
|
||||
ASGDeveloper |
|
|||
developer ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 1.4.2006 Репутация: нет Всего: 1 |
||||
|
||||
DragonLand |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
Я бы с радостью но надо самому писать ... так будет встроен в другую мою прогу.
|
|||
|
||||
DragonLand |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
Ну что никто такого не делал чтоли :(
|
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
А что ты хочешь?
Чтоб за тебя написали? Принцип прост: Запрашивается урл. Свотришь, есть ли на диске файл, соответствующий урлу. Если есть - отдаёшь его. Если нет - принимаешь, сохраняешь в файл, а потом уже отдаёшь. Далее ньюансы. Если запрос идёт с пометкой nocache - не проверяешь наличие в файле. Если аналогичная строка в ответе - не сохраняешь. Также нужно написать логику, которая будет следить, чтоб кэш не разростался, а, достигнув определённого размера, удалялись самые старые файлы. В принципе ничего сверхсложного - в основном работа руками, которую за тебя делать что-то не хочится... |
|||
|
||||
DragonLand |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
Я не прошу за меня написать ..... просто как мне отследить все запросы приходящие от сервера ....
Ведь при запросе любой страницы .... кроме неё самой ещё будут подкачиваться и картинки и JS и CSS .... как всё это отловить |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Все JS, картинки и т.д. - это всё новый запрос, который ты отрабатываешь точно также, как и саму страницу. Не надо их ловить - они сами придут. |
|||
|
||||
DragonLand |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
Тогда извините. А как увидеть что приходит? Пните куда копать.
Просто сам уже замучался искать. Поиск весь перерыл |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
||||
|
||||
DragonLand |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
Прокси написан простенький с помощью компонента TIdMappedPortTCP ....
Если я правильно понял то мне надо в событии IdMappedPortTCPConnect ... проводить необходимые проверки .... ноо я никак не могу получить имя страницы или картинки которая пришла на сервер .... |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
||||
|
||||
DragonLand |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
А какой компонент тогда использовать подскажи плз.
|
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
В Indy10 есть готовый TIdHTTPProxy
|
|||
|
||||
DragonLand |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
ок .... скачаю посмотрю ....
|
|||
|
||||
DragonLand |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
установил Indy10 но когда пытаюсь что то написать с помощью них пишет вот что
IdSysWin32 was compiled with a different version of IdException.EIdException как исправить |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Сначала удали 9-ю версию, а потом ставь 10-ю.
Вместе им тесновато будет - классы и модули имеют одинаковые имена. |
|||
|
||||
DragonLand |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 27.8.2007 Репутация: нет Всего: нет |
ок .... попробую
что то не получается .... как правильно удалять надо Это сообщение отредактировал(а) DragonLand - 29.8.2007, 12:48 |
|||
|
||||
SAVANE |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 20.7.2006 Где: Украина, Полтава Репутация: нет Всего: 1 |
Аналогично. Пол борланда переудалял скоро и делфи не запущу а при установке говорит все равно что установлена другая версия инди. В форуме видил последовательность удаления а найти не могу.
Помогите кто чем может. --------------------
Be not afraid of growing slowly, be afraid only of standing still! |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
1. Меню Component -> Install Packages - Выбрать Indy и нажать кнопу Remove
2. В папке Sources удалить папку Indy 3. В папке Lib удалить все dcu, начинающиеся на id 4. В папке Bin удалить dclindy70.bpl Вроде всё... |
|||
|
||||
SAVANE |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 20.7.2006 Где: Украина, Полтава Репутация: нет Всего: 1 |
Все коректно удалил. Даже Делфи. Переставил и вот борода ставлю автоматически распаковіваємій пакет и ничего
--------------------
Be not afraid of growing slowly, be afraid only of standing still! |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
вообще на сайте индей есть подробный мануал как их ставить вручную... ибо для последней версии инсталлятора нет.
-------------------- There are always someone smarter than you... |
|||
|
||||
SAVANE |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 20.7.2006 Где: Украина, Полтава Репутация: нет Всего: 1 |
Я свою проблему решил. Огромная благодарность.
--------------------
Be not afraid of growing slowly, be afraid only of standing still! |
|||
|
||||
zedx |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 29.11.2007 Репутация: нет Всего: нет |
||||
|
||||
zedx |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 29.11.2007 Репутация: нет Всего: нет |
чё все такие жадные
![]() Блин, пол инета перерыл - и ничего толкового. Простой прокси на indy я сделал, а как дальше, как запросы его читать, как вмешиваться в процесс? как кэшировать? как брать из кэша? ни литературы, ни статей, ни примеров.... Это сообщение отредактировал(а) zedx - 12.6.2008, 21:11 |
|||
|
||||
ТипТопыч |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 10.9.2006 Репутация: нет Всего: нет |
Поковырял малость indy, по умолчанию в нем нет поддержки локального кэша. Выкладываю измененный IdHTTPProxyServer.pas, вдруг кому пригодится.
Использование:
URLEncode/URLDecode взяты отсюда: http://www.torry.net/dpfl/dzurl.html Это сообщение отредактировал(а) ТипТопыч - 19.12.2008, 22:20 Присоединённый файл ( Кол-во скачиваний: 38 ) ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |