Стоит задача захвата всех изображений с
image/*
в Content-Type, обработки их определенным образом с последующей подменой оригинала на обработанную версию при наибыстрейшем сквозном пропускании остального трафика. Также очень желательна возможность подключить parent proxy, на который будет форвайдится трафик.
Я мог бы написать такой велосипед (прототип) на многих из известных мне языков, не обращая внимания на производительность. Но меня интересует
правильный вариант подхода к этой задаче, а не просто перечисление вариантов, типа "и на этом тоже можно как-то наколхозить". Идеально было бы использовать готовый сервер (в mature state, оптимизированный и отточенный) с возможностью прикрутить к нему свой плагин или скрипт. Но я не нашел соответствующего решения среди популярных серверов. Если писать сервер самостоятельно, то в качестве основы лучше взять какой-то mature проект в котором предусмотрена возможность расширения (перехват событий, например).
Что касается Python, на котором я сходу собирался решить задачу, то на нем, как оказывается, практически нет подходящих вариантов. Все что я нашел это:
- CherryProxy - CherryPy based, хорошая задумка, но брошен в 2012, есть возможности подключить parent proxy.
- proxy2 - основан на блокируемых потоках Threading (!), основной упор на перехват и подмену SSL, нет возможности подключить parent proxy, продолжаю изучать его пока.
- proxy.py - относительно популярен на githab, слишком сильно заморочен на полном отсутствии зависимостей, внутри логика тесно завязана множестве различных состояний (лично я не люблю любые аналогии со state machine, это непрозрачно и далеко от функционального подхода), никакой возможности для расширения (или monkey patch во множестве мест или серьезная переделка архитектуры), нет возможности подключить parent proxy.