Состоялся релиз легковесного http-сервера lighttpd 1.4.65, пытающегося сочетать высокую производительность, безопасность, соответствие стандартам и гибкость настройки. Lighttpd пригоден для применения на высоконагруженных системах и нацелен на низкое потребление памяти и ресурсов CPU. В новой версии представлено 173 изменения. Код проекта написан на языке Си и распространяется под лицензией BSD. Основные новшества:
- Добавлена поддержка WebSocket поверх HTTP/2, а также реализован RFC 8441, описывающий механизм для запуска протокола WebSockets в одном потоке внутри соединения HTTP/2.
- Реализована расширенная схема управления приоритетами, позволяющая клиенту влиять на приоритет передаваемых сервером ответов (RFC 9218), а также управлять приоритетами при перенаправлении запросов. Для HTTP/2 обеспечена поддержка кадра PRIORITY_UPDATE.
- В настройках lighttpd.conf добавлена поддержка условных сопоставлений с привязкой к началу (=^) и концу (=$) строки. Подобные строковые проверки значительно быстрее регулярных выражений и достаточны для многих простых проверок.
- В mod_webdav добавлена поддержка частичных операций PUT (охватывающих часть данных при помощи заголовка Range). Для включения можно использовать опцию ‘webdav.opts += (“partial-put-copy-modify’ => “enable”)’.
- В mod_accesslog добавлена опция ‘accesslog.escaping = ‘json'”.
- В mod_deflate добавлена поддержка сборки с libdeflate.
- Ускорена передача тела запроса через HTTP/2.
- Значение параметра server.max-keep-alive-requests по умолчанию изменено cо 100 до 1000.
- В списке MIME-типов “application/javascript” заменён на “text/javascript” (RFC 9239).
На будущие запланировано применение более строгих настроек шифров для TLS и отключения по умолчанию устаревших шифров. Настройка CipherString будет изменена со значения “HIGH” на “EECDH+AESGCM:AES256+EECDH:CHACHA20:SHA256:!SHA384”. Также запланированы к удалению устаревшие опции TLS: ssl.honor-cipher-order, ssl.dh-file, ssl.ec-curve, ssl.disable-client-renegotiation, ssl.use-sslv2, ssl.use-sslv3. Дополнительно будет продолжена чистка мини-модулей, которые можно заменить более гибкой Lua-реализацией mod_magnet, таких как mod_evasive, mod_secdownload, mod_uploadprogress и mod_usertrack.