GNU төсөл нь төслийн 16 жилийн түүхэн дэх анхны тогтвортой хувилбар болох libmicrohttpd 1.0.0 хувилбарыг гаргалаа. Номын сан нь C хэл дээр бичигдсэн бөгөөд HTTP серверийн функцийг програмуудад оруулах энгийн API-г хангадаг. Дэмжигдсэн платформуудад дараахь зүйлс орно: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 болон z/OS. Код нь LGPL 2.1+ лицензийн дагуу түгээгддэг. Номын сан нь анхдагч бүтээх горимд ойролцоогоор 200 KB, хамгийн бага бүтээх горимд 32 KB хэмжээтэй байдаг. Хамааралтай байдалд зөвхөн libc багтдаг бөгөөд libgnutls нь TLS дэмжлэгтэйгээр сонголтоор бүтээгдсэн байдаг.
Номын сан нь HTTP 1.1 протокол, TLS, POST хүсэлтийг аажмаар боловсруулах, хэд хэдэн сүлжээний портуудын холболтыг хүлээн авах, үндсэн болон дижест нэвтрэлт танилт, IPv6, SHOUTcast, төрөл бүрийн холболтын олон талт арга (сонгох, санал асуулга, epoll) болон олон урсгалтай загваруудыг (жишээлбэл, та) дэмждэг. холболт бүрт thread-ийн сан эсвэл thread ашиглаж болно). Цөм болон хэрэглэгчийн орон зай хооронд контекст шилжихэд гарах зардлыг багасгахын тулд үйлдлийн явцад системийн дуудлагын тоог хамгийн бага хэмжээнд байлгадаг. Libmicrohttpd кодын аюулгүй байдал нь Mozilla болон Red Hat-ийн хийсэн аудитаар батлагдсан.
Сүүлийн хувилбартай харьцуулахад хамгийн мэдэгдэхүйц өөрчлөлтүүд:
- Үйлчлүүлэгчийн хүсэлтийг задлан шинжлэх кодыг дахин бичиж, RFC 9110 болон 9112-ын шаардлагад бүрэн нийцүүлсэн. Тохиромжтой байдал эсвэл илүү өндөр аюулгүй байдлын хооронд тэнцвэржүүлэхийн тулд нарийн бөгөөд зөөлөн тодорхойлолтыг дагаж мөрдөх горимуудыг хангадаг.
- RFC 7617-д байгаа функцүүдийн дэмжлэгийг ихээхэн өргөжүүлсэн, дижест баталгаажуулалтын хэрэгжилтийг дахин боловсруулсан. Үүнд SHA-512, хэрэглэгчийн нэр, өргөтгөсөн тэмдэглэгээний дэмжлэг орно. Хуучин RFC 2069-ийн дэмжлэг, MD5 болон SHA-256 хэшийг ашиглах чадварыг мөн хадгалсан.
- Олон урсгалтай орчин болон сокет санал авах горимуудын гүйцэтгэл сайжирсан.
- Үндсэн баталгаажуулалтын хэрэгжилтийг дахин боловсруулж, ABI-д нэмэлт функцуудыг санал болгож байна.
- GnuTLS эхлүүлэх кодыг дахин боловсруулсан. Стандарт болон libmicrohttpd-д зориулсан GnuTLS системийн тохиргоог хоёуланг нь ашиглах боломж, түүнчлэн GnuTLS системийн тохиргооны тохиргоог хүчингүй болгох дэмжлэг нэмэгдсэн.
Цаашид libmicrohttpd 2 салбарыг хөгжүүлэхээр төлөвлөж байгаа бөгөөд энэ нь HTTP/2 болон HTTP/3 протоколуудад дэмжлэг үзүүлэхээс гадна API-г хялбарчлах, TLS-ийн төрөл бүрийн backends-ийг дэмжих чиглэлээр ажиллах болно. Шинэ салбарыг нээх ажлыг Герман улсад нээлттэй дижитал дэд бүтэц, нээлттэй эхийн экосистемийг хөгжүүлэхэд түлхэц үзүүлэх зорилгоор байгуулагдсан "Соверен сан" санхүүжүүлнэ.
Эх сурвалж: opennet.ru
