is a registered creature name. Don't copy or redistribute creature without permissions. All rights reserved. ^=
Наверное только сейчас я потерял веру в разработчиков в людей. Во всех сразу.

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

Чего мне не хочется?
Отдавать файл своими силами — это раз. Играться с перенаправлениями на статические файлы или другими приложениями и т.п. — это два.

Что мне хочется?
Иметь возможность подменить своим приложением внутренние модули веб сервера, чтобы самостоятельно выполнять функции авторизации (auth), диспетчеризации (rewrite), фильтрации (filter). Для этого не нужно многое — достаточно одного универсального интерфейса к разным серверам. Интерфейса с красивой архитектурой.
Например, один модуль сервера проверяет авторизацию на доступ к файлу, меняет переменные запроса (например, path_translated) и завершается. После этого веб сервер самостоятельно отдает файл клиенту (или фильтру, если такой имеется). Да и если вместо файла будет чужое приложение или обработчик SSI, то разницы не будет. Всё просто и красиво.

А что в жизни?
Что-то похожее уже давно есть в виде модулей aspnet_isapi1, middleware wsgi2, концепции authorizer & filter в fastcgi3, но нормальной реализации идеи еще пока нигде нет.

1: Работает непонятно каким образом и только на IIS.
2: Хорошая реализация каскадных вызовов, но всё внутри питона.
3: Authorizer работает на apache, lighthttpd, zeus и не работает на nginx. Контекст менять не дает — максимум дописывать переменные запроса. Так что даже простейший диспетчер в виде mod_rewrite с fastcgi уже не напишешь. Фильтры работают еще на меньшем количестве платформ.




@темы: Проекты