پروژه گنو libmicrohttpd 1.0.0 را منتشر کرده است که اولین نسخه پایدار در تاریخ 16 ساله این پروژه است. این کتابخانه به زبان C نوشته شده است و یک API ساده برای جاسازی عملکرد سرور HTTP در برنامه ها ارائه می دهد. پلتفرم های پشتیبانی شده عبارتند از GNU/Linux، FreeBSD، OpenBSD، NetBSD، Solaris، Android، macOS، Win32 و z/OS. کد تحت مجوز LGPL 2.1+ توزیع شده است. وقتی کتابخانه به صورت پیش فرض ساخته می شود، حدود 200 کیلوبایت و در حالت حداقل ساخت 32 کیلوبایت اشغال می کند. وابستگی ها فقط از libc و همچنین libgnutls زمانی که به صورت اختیاری با پشتیبانی TLS ساخته می شوند، استفاده می کنند.
این کتابخانه از پروتکل HTTP 1.1، TLS، پردازش افزایشی درخواستهای POST، پذیرش اتصالات از چندین پورت شبکه، احراز هویت اولیه و خلاصه، IPv6، SHOUTcast، روشهای مختلف چندگانهسازی اتصال (انتخاب، نظرسنجی، epoll) و مدلهای چند رشتهای (به عنوان مثال، شما) پشتیبانی میکند. می توانید از یک استخر نخ یا نخ در هر اتصال استفاده کنید). برای کاهش سربار تحمیل شده هنگام جابجایی زمینه بین هسته و فضای کاربر، تعداد تماس های سیستم در حین کار به حداقل می رسد. امنیت پایگاه کد libmicrohttpd توسط ممیزی های انجام شده توسط موزیلا و Red Hat تأیید شده است.
قابل توجه ترین تغییرات نسبت به نسخه قبلی:
- کد تجزیه درخواست های مشتری بازنویسی شده و مطابق با الزامات RFC 9110 و 9112 است. حالت های انطباق با مشخصات سختگیرانه و نرم برای تعادل بین سازگاری یا امنیت بالاتر ارائه شده است.
- اجرای احراز هویت خلاصه دوباره کار شده است، که به طور قابل توجهی پشتیبانی از ویژگیهای موجود در RFC 7617 را افزایش میدهد. این شامل پشتیبانی از SHA-512، userhash و نام کاربری در نماد توسعهیافته است. پشتیبانی از RFC 2069 قدیمی و توانایی استفاده از هش MD5 و SHA-256 نیز حفظ شده است.
- عملکرد بهبود یافته در محیطهای چند رشتهای و حالتهای نظرسنجی سوکت.
- اجرای احراز هویت اولیه دوباره کار شده است، که برای آن توابع اضافی در ABI ارائه شده است.
- کد راه اندازی مجدد GnuTLS. قابلیت استفاده از پیکربندی سیستم GnuTLS استاندارد و اختصاصی libmicrohttpd و همچنین پشتیبانی از نادیده گرفتن تنظیمات پیکربندی سیستم GnuTLS منفرد را اضافه کرد.
در آینده برنامه ریزی شده است که شعبه libmicrohttpd 2 را توسعه دهد که از پروتکل های HTTP/2 و HTTP/3 پشتیبانی می کند و همچنین برای ساده سازی API و پشتیبانی از پشتیبان های مختلف برای TLS کار می کند. شروع کار در شعبه جدید توسط بنیاد Sovereign، که در آلمان برای تحریک توسعه زیرساخت های دیجیتال باز و اکوسیستم های منبع باز تأسیس شده است، تامین می شود.
منبع: opennet.ru