GNU libmicrohttpd 0.9.74 вже випущено, і це його новини

Останнім часом проект GNU випустив реліз нова версія бібліотеки libmicrohttpd 0.9.74, Представляє простий API для вбудованих функцій HTTP-сервера в додатках.

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

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

З характеристик які виділяються для цієї реалізації:

  • Бібліотека C: швидка і маленька
  • API простий, виразний і повністю повторний.
  • Реалізація відповідає вимогам HTTP 1.1
  • HTTP-сервер може слухати на кількох портах
  • Кілька режимів потоків: запуск у потоці програми, внутрішньому потоку, пулі потоків і потоках на з’єднання
  • Три різні режими опитування сокетів: вибір (), опитування () і epoll
  • Мінімальна кількість системних викликів, щоб уникнути додаткових змін ядра / режиму користувача
  • Підтримувані платформи включають GNU / Linux, FreeBSD, OpenBSD, NetBSD, Android, Darwin (macOS), W32, OpenIndiana /
  • Solaris і z / ОС
  • Підтримка 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. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.