Модераторы: Snowy, Poseidon, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кеширующий прокси, Кеширующий прокси 
:(
    Опции темы
DragonLand
Дата 27.8.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



Всем добрый день.
Вот появилась необходимость написать небольшой свой Кеширующий прокси.
Как написать просто прокси я нашёл и реализовал. Но работу с кешем я к нему прикрутить не смог.
Пните куда копать.
Заранее спасибо.
PM MAIL   Вверх
ASGDeveloper
Дата 27.8.2007, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


developer
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 1.4.2006

Репутация: нет
Всего: 1



Цитата(DragonLand @  27.8.2007,  12:48 Найти цитируемый пост)
Пните куда копать.

Скачай HandyCache. smile
PM MAIL   Вверх
DragonLand
Дата 27.8.2007, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



Я бы с радостью но надо самому писать ... так будет встроен в другую мою прогу.
PM MAIL   Вверх
DragonLand
Дата 28.8.2007, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



Ну что никто такого не делал чтоли :(
PM MAIL   Вверх
Snowy
Дата 28.8.2007, 14:27 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



А что ты хочешь?
Чтоб за тебя написали?

Принцип прост:
Запрашивается урл.
Свотришь, есть ли на диске файл, соответствующий урлу.
Если есть - отдаёшь его.
Если нет - принимаешь, сохраняешь в файл, а потом уже отдаёшь.

Далее ньюансы.
Если запрос идёт с пометкой nocache - не проверяешь наличие в файле.
Если аналогичная строка в ответе - не сохраняешь.

Также нужно написать логику, которая будет следить, чтоб кэш не разростался, а, достигнув определённого размера, удалялись самые старые файлы.

В принципе ничего сверхсложного - в основном работа руками, которую за тебя делать что-то не хочится...
PM MAIL   Вверх
DragonLand
Дата 28.8.2007, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



Я не прошу за меня написать ..... просто как мне отследить все запросы приходящие от сервера .... 

Ведь при запросе любой страницы .... кроме неё самой ещё будут подкачиваться и картинки и JS и CSS .... как всё это отловить
PM MAIL   Вверх
Snowy
Дата 28.8.2007, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата(DragonLand @  28.8.2007,  15:13 Найти цитируемый пост)
Ведь при запросе любой страницы .... кроме неё самой ещё будут подкачиваться и картинки и JS и CSS .... как всё это отловить
Каждый файл идёт отдельным запросом.
Все JS, картинки и т.д. - это всё новый запрос, который ты отрабатываешь точно также, как и саму страницу.
Не надо их ловить - они сами придут.
PM MAIL   Вверх
DragonLand
Дата 28.8.2007, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



Тогда извините. А как увидеть что приходит? Пните куда копать.

Просто сам уже замучался искать. Поиск весь перерыл
PM MAIL   Вверх
Snowy
Дата 28.8.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата(DragonLand @  28.8.2007,  16:04 Найти цитируемый пост)
Тогда извините. А как увидеть что приходит?
Ну ты же прокси пишешь.
Ты принимаешь запросы, ты отправляешь запросы, принимаешь ответы, отправляешь ответы.
Как ты это делаешь - ты не сообщил.
Но в любом случае, раз ты это делаешь, значит можешь и контролировать...
PM MAIL   Вверх
DragonLand
Дата 28.8.2007, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



Прокси написан простенький с помощью компонента TIdMappedPortTCP .... 

Если я правильно понял то мне надо в событии IdMappedPortTCPConnect ... проводить необходимые проверки .... ноо я никак не могу получить имя страницы или картинки которая пришла на сервер .... 
PM MAIL   Вверх
Snowy
Дата 28.8.2007, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата(DragonLand @  28.8.2007,  16:22 Найти цитируемый пост)
Прокси написан простенький с помощью компонента TIdMappedPortTCP
Не. Это маппер, а не прокси...
Прокси запросов он выполнять не может.
Максимум - он может перенаправлять их другому прокси, который их и будет уже выполнять.
PM MAIL   Вверх
DragonLand
Дата 28.8.2007, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



А какой компонент тогда использовать подскажи плз.
PM MAIL   Вверх
Snowy
Дата 28.8.2007, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



В Indy10 есть готовый TIdHTTPProxy
PM MAIL   Вверх
DragonLand
Дата 28.8.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



ок .... скачаю посмотрю .... 
PM MAIL   Вверх
DragonLand
Дата 29.8.2007, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



установил Indy10 но когда пытаюсь что то написать с помощью них пишет вот что

IdSysWin32 was compiled with a different version of IdException.EIdException

как исправить
PM MAIL   Вверх
Snowy
Дата 29.8.2007, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Сначала удали 9-ю версию, а потом ставь 10-ю.
Вместе им тесновато будет - классы и модули имеют одинаковые имена.
PM MAIL   Вверх
DragonLand
Дата 29.8.2007, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.8.2007

Репутация: нет
Всего: нет



ок .... попробую

что то не получается .... как правильно удалять надо

Это сообщение отредактировал(а) DragonLand - 29.8.2007, 12:48
PM MAIL   Вверх
SAVANE
Дата 1.9.2007, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 20.7.2006
Где: Украина, Полтава

Репутация: нет
Всего: 1



Аналогично. Пол борланда переудалял скоро и делфи не запущу а при установке говорит все равно что установлена другая версия инди. В форуме видил последовательность удаления а найти не могу.
Помогите кто чем может.
--------------------
Be not afraid of growing slowly, be afraid only of standing still!
PM MAIL WWW ICQ   Вверх
Snowy
Дата 1.9.2007, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



1. Меню Component -> Install Packages - Выбрать Indy и нажать кнопу Remove
2. В папке Sources удалить папку Indy
3. В папке Lib удалить все dcu, начинающиеся на id
4. В папке Bin удалить dclindy70.bpl
Вроде всё...
PM MAIL   Вверх
SAVANE
Дата 1.9.2007, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 20.7.2006
Где: Украина, Полтава

Репутация: нет
Всего: 1



Все коректно удалил. Даже Делфи. Переставил и вот борода ставлю автоматически распаковіваємій пакет и ничего
--------------------
Be not afraid of growing slowly, be afraid only of standing still!
PM MAIL WWW ICQ   Вверх
MetalFan
Дата 1.9.2007, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 14
Всего: 128



вообще на сайте индей есть подробный мануал как их ставить вручную... ибо для последней версии инсталлятора нет.



--------------------
There are always someone smarter than you...
PM MAIL   Вверх
SAVANE
Дата 2.9.2007, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 20.7.2006
Где: Украина, Полтава

Репутация: нет
Всего: 1



Я свою проблему решил. Огромная благодарность.
--------------------
Be not afraid of growing slowly, be afraid only of standing still!
PM MAIL WWW ICQ   Вверх
zedx
Дата 10.6.2008, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 29.11.2007

Репутация: нет
Всего: нет



Цитата(DragonLand @  27.8.2007,  12:48 Найти цитируемый пост)
Вот появилась необходимость написать небольшой свой Кеширующий прокси.

Вот, такая же проблема... подкиньте кто-нибудь готовый примерчик кэширующего прокси?
PM MAIL   Вверх
zedx
  Дата 11.6.2008, 23:56 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 29.11.2007

Репутация: нет
Всего: нет



чё все такие жадные smile 

Блин, пол инета перерыл - и ничего толкового. 
Простой прокси на indy я сделал, а как дальше, как запросы его читать, как вмешиваться в процесс? как кэшировать? как брать из кэша? ни литературы, ни статей, ни примеров....

Это сообщение отредактировал(а) zedx - 12.6.2008, 21:11
PM MAIL   Вверх
ТипТопыч
Дата 19.12.2008, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 10.9.2006

Репутация: нет
Всего: нет



Поковырял малость indy, по умолчанию в нем нет поддержки локального кэша. Выкладываю измененный IdHTTPProxyServer.pas, вдруг кому пригодится.

Использование:
Код

procedure TForm1.ProxyServerBeforeCommandHandler(ASender: TIdCmdTCPServer;
  var AData: String; AContext: TIdContext);
var path: string; // Путь к файлу
begin
// Здесь надо прописать условия загрузки файла из локального кэша
// Загрузка файла с диска
AData := 'FILE '+URLEncode(path, false)+' HTTP/1.1';
end;


URLEncode/URLDecode взяты отсюда:
http://www.torry.net/dpfl/dzurl.html

Это сообщение отредактировал(а) ТипТопыч - 19.12.2008, 22:20

Присоединённый файл ( Кол-во скачиваний: 38 )
Присоединённый файл  IdHTTPProxyServer.pas 14,17 Kb
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1062 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.