Проект GNU опубликовал выпуск библиотеки libmicrohttpd 0.9.74, представляющей простой API для встраивания функциональности HTTP-сервера в приложения. Библиотека поддерживает протокол HTTP 1.1, TLS, инкрементальную обработку POST-запросов, basic- и digest-аутентификацию, IPv6, SHOUTcast и различные методы мультиплексирования соединений (select, poll, pthread, thread pool). Среди поддерживаемых платформ: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Win32, Symbian и z/OS. Библиотека распространяется под лицензией LGPL 2.1+.
Наиболее заметные изменения:
Наиболее заметные изменения:
- Добавлена экспериментальная реализация протокола WebSockets, которая пока недостаточно хорошо протестирована и отключена по умолчанию.
- Улучшено соответствие спецификациям реализаций протоколов HTTP 1.0/1.1.
- Переделан код для декодирования chunked-запросов.
- Полностью переписан код формирования HTTP-заголовков при ответе.
- Добавлен код для автоматического возвращения ошибок, связанных с некорректными chunked-запросами, слишком большим размером данных и неверным выставлением заголовка Content-Length.
- Точность задания таймаутов повышена с секунд до миллисекунд.
- Проведены внутренние оптимизации, например, улучшено управление памятью, повышена эффективность хэширования и исключён повторяющийся разбор версии протокола и метода HTTP.
- Обеспечена более строгая проверка корректности значений HTTP-заголовков, разрешено использование символа табуляции в значениях заголовков ответа, но запрещено использование пробела в значениях пользовательских заголовков.
- Улучшены описания функций в заголовочном файле microhttpd.h.
- В API добавлены функции MHD_get_reason_phrase_len_for() и MHD_create_response_from_buffer_with_free_callback_cls(), флаг MHD_CONNECTION_INFO_HTTP_STATUS в MHD_get_connection_info(), а также флаги ответов MHD_RF_SEND_KEEP_ALIVE_HEADER, MHD_RF_HTTP_1_0_SERVER и MHD_RF_HTTP_1_0_COMPATIBLE_STRICT.
- Добавлена сборочная опция '--enable-sanitizers[=address,undefined,leak,user-poison]' для выборочного включения режимов выявления проблем в коде.
- Добавлен файл проекта для сборки в MSVC.
Выпуск библиотеки GNU libmicrohttpd 0.9.74
www.opennet.ru