GNU libmicrohttpd 0.9.74 уже выпущен, и это его новости

Недавно проект GNU выпустил выпуск новая версия библиотеки libmicrohttpd 0.9.74, A, представляющий простой API для встроенных функций HTTP-сервера в приложениях.

Библиотека поддерживает протокол HTTP 1.1, TLS, инкрементную обработку запросов POST, базовая и дайджест-аутентификация, IPv6, SHOUTcast и различные методы для мультиплексирования соединений (выбор, опрос, pthread, пул потоков), в настоящее время реализация поддерживает различные поддерживаемые платформы, включая GNU / Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android , macOS, Win32, Symbian и z / OS.

GNU libmicrohttpd возникла из-за потребности ее автора, которому в то время требовался простой способ добавления параллельного HTTP-сервера в другие проекты. Существующие альтернативы были несвободными, невозвратными, автономными, с ужасным качеством кода или их комбинацией.

Из характеристик которые выделяются этой реализацией:

  • Библиотека C: быстро и компактно
  • API простой, выразительный и полностью повторяющийся.
  • Реализация совместима с HTTP 1.1.
  • HTTP-сервер может прослушивать несколько портов
  • Несколько режимов работы с потоками: выполнение в потоке приложения, внутреннем потоке, пуле потоков и потоке на соединение
  • Три разных режима опроса сокетов: select (), poll () и epoll
  • Минимальное количество системных вызовов, чтобы избежать дополнительных изменений режима ядра / пользователя
  • Поддерживаемые платформы включают GNU / Linux, FreeBSD, OpenBSD, NetBSD, Android, Darwin (macOS), W32, OpenIndiana /
  • Solaris и z / OS
  • Поддержка IPv6
  • SHOUTcast поддержка
  • Поддержка инкрементальной обработки данных POST (необязательно)
  • Поддержка базовой и неявной аутентификации (необязательно)
  • Поддержка TLS (требуется libgnutls, необязательно)
  • Размер двоичного файла составляет всего около 32 КБ (без поддержки TLS и других дополнительных функций).

Основные новые возможности libmicrohttpd 0.9.74

В этой новой версии, представленной в библиотеке, мы можем найти, что добавлена ​​экспериментальная реализация протокола WebSockets, который еще плохо протестирован и по умолчанию отключен.

Еще одна представленная новинка заключается в том, что улучшено соответствие спецификациям реализации протокола HTTP 1.0 / 1.1Кроме того, был переработан код для декодирования фрагментированных запросов.

Также подчеркивается, что добавлен код для автоматического возврата ошибок, связанных с ошибочными запросами по фрагментам, слишком большой размер данных и неправильная настройка заголовка Content-Length.

Было реализовано внутренние оптимизации, например, улучшенное управление памятью, повышенная эффективность хеширования и устранение повторяющегося синтаксического анализа метода HTTP и версии протокола.

Также следует отметить, что он обеспечивает более строгую проверку значений заголовка HTTP, разрешает использование символа табуляции в значениях заголовка ответа, но запрещает использование пробелов в значениях настраиваемого заголовка.

Кроме того, полностью переписан код для генерации HTTP-заголовков в ответ а точность тайм-аута была увеличена с секунд до миллисекунд.

Добавлен параметр сборки –enable-sanitizers [= адрес, неопределенный, утечка, пользовательский яд] для выборочного включения режимов обнаружения проблем в коде.

Исправлены, уточнены, расширены и улучшены описания функций Doxy, теперь упоминается, что изучение MHD должно быть намного проще, просто читая заголовки.

Из других изменений, которые выделяются в этой новой версии:

  • Улучшено описание функций в заголовочном файле 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_CONNECTION_INFO_HTTP_STATUS, а ответы MHD_SDRIVE_HDRFKE_HDR_HDRF_HDR_HDRF_HDRF_REND_HDRF_HDRF_REND_HDRF_HDR_RF_RF_HDR_RF_HDRF_.
  • Добавлен файл проекта для сборки в MSVC.
  • Полностью переписано формирование заголовка ответа. Новая реализация более надежна, проще в обслуживании и расширяема, а также лучше соответствует спецификациям RFC HTTP.
  • Улучшения производительности: теперь версия HTTP и метод запроса декодируются только один раз (ранее в MHD использовалось сравнение многих строк.

В конце концов если вам интересно узнать об этом больше об этом выпуске вы можете ознакомиться с руководствами пользователя и другой информацией на его веб-сайте.

Ссылка такая.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.