GNU libmicrohttpd 0.9.74 已經發布,這些是它的新聞

最近 GNU 項目發布了 圖書館的新版本 libmicrohttpd 0.9.74, 代表應用程序中內置 HTTP 服務器功能的簡單 API。

圖書館 支持HTTP 1.1協議、TLS、POST請求增量處理, basic and digest authentication, 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 服務器可以監聽多個端口
  • 多線程模式:在應用程序線程、內部線程、線程池和每個連接線程上運行
  • 三種不同的socket輪詢方式:select()、poll()、epoll
  • 最少的系統調用次數,以避免額外的內核/用戶模式更改
  • 支持的平台包括 GNU/Linux、FreeBSD、OpenBSD、NetBSD、Android、Darwin (macOS)、W32、OpenIndiana/
  • Solaris 和 z/OS
  • 支持IPv6
  • SHOUTcast 支持
  • 支持POST數據的增量處理(可選)
  • 支持基本和隱式身份驗證(可選)
  • TLS 支持(需要 libgnutls,可選)
  • 二進製文件只有大約 32k(沒有 TLS 支持和其他可選功能)

libmicrohttpd 0.9.74 主要新特性

在這個新版本的庫中,我們可以發現 添加了 WebSockets 協議的實驗性實現, 它還沒有經過很好的測試,默認情況下是禁用的。

提出的另一個新穎之處是 改進了對 HTTP 1.0 / 1.1 協議實施規範的遵守情況此外,對代碼進行了重新設計,以解碼碎片化的請求。

還強調了 添加代碼以自動返回與錯誤分塊請求相關的錯誤, 太大的數據大小和不正確的 Content-Length 標頭設置。

已經實現 內部優化, 例如,改進了內存管理,提高了哈希效率,消除了對 HTTP 方法和協議版本的重複解析。

還需要注意的是,它對 HTTP 標頭值提供了更嚴格的驗證,允許在響應標頭值中使用製表符,但禁止在自定義標頭值中使用空格。

除此之外, 生成 HTTP 標頭作為響應的代碼已完全重寫 超時精度從秒增加到毫秒。

添加了構建選項 –enable-sanitizers [= address, undefined, leak, user-poison] 以選擇性地在代碼中啟用問題檢測模式。

更正、澄清、擴展和改進了 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. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。