Выпуск библиотеки GNU libmicrohttpd 0.9.74

Kate

Administrator
Команда форума
Проект 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.
 
Сверху