Proxy сервер, Delphi 7

Максим15 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
19.10.2010

Необходимо разработать отдельное самостоятельное приложение (или отдельный класс) "HTTP-прокси сервер" со следующими обязательными требованиями:

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

- не использовать сторонних платных компонентов, в идеале - работа только на сокетах и стандартных компонентах входящих в поставку Delphi 7;

- стабильная работа на Windows XP/2003/Vista/Seven; проверяться будет работа из браузеров IE 6-8; нормальный запуск и работа в "дефолтных" условиях на Vista/Seven, от простой учетной записи пользователя;

- файл конфигурации: простой ini, при запуске приложения путь к файлу конфигурации указывается параметром в командной строке, после загрузки конфигурации файл удалять;

- запуск только при наличии в строке параметра "ключа" - функцию генерации ключа выдам, при каждом запуске проверять ключ;

- несколько подключений/потоков к удаленному хосту, количество задается в файле конфигурации;

- настройки подключения: порт по выбору, подключение через родительский прокси сервер - задаются в файле конфигурации;

- белый список серверов с которых можно скачивать файлы, на все остальные запросы отправлять хедер HTTP/404 - белый список задается в файле конфигурации;

- кэширование скачанных файлов: при загрузке файла с удаленного сервера отдавать его браузеру и содержимое шифровать (обратимо, не сложно, например xOR-ом), генерировать имя на основе md5-хэша URL-а и складывать в отдельную папку, при повторном запросе, только если нет подключения к интернету - отдавать из кэша, при условии, что таймаут хранения файла в кэше не закончился, очищать кэш по таймауту (предположительно таймаут будет ~ 5-10 суток, так что можно чистить кэш при старте/завершении), таймаут для кэша указывается в настройках в минутах;

- специальный список URL-ов/хостов: при запросе - отдавать заранее подготовленный текстовый файл, путь к файлу и специальный список серверов будет указан в файле конфигурации, если нет в списке - отдавать HTTP/404;

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

При желании, после запуска "большого проекта" в "О программе" могут быть добавлены ваши копирайты.

Если нужно более подробное ТЗ - могу выслать отдельно, но думаю здесь все крайне понятно.

Пожалуйста, в отзывах указывайте сроки реализации (минимальный и максимальный, со всеми тестированиями и отловами ошибок), когда сможете взяться за выполнение и вашу цену, если она будет ниже заявленной.