Обработка данных в формате multipart/form-data была изменена с использования split на пропускной метод, что повысило производительность и безопасность. Также был установлен лимит на количество заголовков, и файлы с количеством заголовков, превышающим максимальное значение, больше не анализируются.
bodyparser.js Обновление способа парсинга тела запроса.
Несколько других небольших обновлений.
Обновлен способ мониторинга нагрузки в файлах monitor.js и titbit.js, что повысило стабильность системы.
Обновление обработки msgEvent.
-(router.js) оптимизирован для повышения производительности обработки маршрутов.
В виртуальной машине с процессором AMD Ryzen 5 5600U проведено тестирование. Для 200 обычных маршрутов с параметрами поиск выполняется со скоростью до 800 000 запросов в секунду, средняя скорость составляет более 750 000 запросов в секунду. Поиск сложных маршрутов с несколькими параметрами и маршрутов, требующих форматной обработки при злонамеренной конструкции, достигает скорости свыше 360 000 запросов в секунду, что обеспечивает увеличение производительности примерно на 50%.
Удалите ненужные параметры ctx.box.dataHandle, чтобы упростить код и повысить производительность. В случае необходимости для создания пользовательского процесса обработки данных можно переопределить функцию mid.
Произведены изменения в структуре части кода, а также исправлена скрытая ошибка, которая возникает при незаконной передаче опций middleware.
titbit.js: Подключаем helper модуль для примера titbit, чтобы упростить доступ и установку свойств aesIv и algorithm;
Helper модуль по умолчанию использует base64url кодирование для шифрования и расшифровки AES. Устранена ошибка: при шифровании использовалось по умолчанию base64 кодирование вместо переданного параметра.
Другие изменения, не влияющие на функциональность и не связанные с кодом.
Поддержка паттерна Singleton;
Сервис не может быть переопределён;
Предоставление интерфейса clearService для очистки сервиса (в основном используется для daemon-интерфейсов)
Хотя симметричное шифрование и расшифрование модуля используют названия, начинающиеся с aes, можно также задавать другие поддерживаемые алгоритмы, такие как sm4.