Типичные задачи
- Аутентификация и авторизация — проверить токен до выполнения действия
- Rate limiting — ограничить количество запросов с IP
- Логирование — записать детали запроса/ответа
- CORS — добавить заголовки для cross-origin запросов
- Сжатие ответа — gzip перед отправкой
Паттерн «цепочка обязанностей»
Каждый middleware реализует один метод: получи запрос, сделай своё, передай дальше. Если условие не выполнено — верни ответ и прерви цепочку. Паттерн не зависит от фреймворка и одинаково реализован в PHP, Python (WSGI), Node.js (Express) и Go.