Zostało to niedawno ogłoszone wydanie nowej wersji biblioteki GNU „libmicrohttpd 1.0.0”, który jest oznaczona jako pierwsza stabilna wersja projektu i który podkreśla, między innymi, przeprojektowanie implementacji ukrytego uwierzytelniania, a także fakt, że przerobiono kod inicjujący GnuTLS.
Ci, którzy nie wiedzą o libmicrohttpd, powinni to wiedzieć Jest to potężne narzędzie do uruchamiania serwera HTTP w aplikacji C lub C++. GNU libmicrohttpd charakteryzuje się szybką i małą biblioteką C, oszczędną pod względem zasobów i odpowiednią dla aplikacji wymagających zintegrowanego serwera HTTP.
Posiada ekspresyjne i bezpieczne API do współpracy z serwerem HTTP, kompatybilny z HTTP 1.1 i umożliwiający nasłuchiwanie na wielu portach, a także oferujący elastyczne opcje zarządzania wątkami, co pozwala na dostosowanie się do różnych środowisk aplikacji.
Zapewnia wszechstronne metody zarządzania gniazdami, Obsługuje różnorodne platformy systemów operacyjnych, umożliwia komunikację poprzez IPv4 i IPv6 oraz ułatwia wydajne przetwarzanie danych przesyłanych za pomocą żądań POST.
Główne nowe funkcje libmicrohttpd
To wydanie stanowi pierwszą stabilną wersję GNU libmicrohttpd po 16 latach rozwoju projektu i w tej nowej wersji zaimplementowano ważne zmiany i nowe funkcje, między innymi Przepisana analiza żądań klientów, dostosowana do standardów RFC, ponieważ kod odpowiedzialny za analizowanie żądań klientów został całkowicie przepisany i obecnie spełnia wymagania wyszczególnione w RFC 9110 i 9112, a także zapewniono rygorystyczne i elastyczne tryby zgodności, aby zrównoważyć kompatybilność i ulepszone bezpieczeństwo.
Kolejną zmianą wyróżniającą się w nowej wersji jest to, że zostały one wdrożone ulepszenia szyfrowania i podstawowego uwierzytelniania, z obsługą zaawansowanych funkcji zgodnie z RFC 7617W przypadku uwierzytelniania szyfrowanego jego implementacja została przeprojektowana, znacznie rozszerzając obsługę funkcji opisanych w RFC 7617. Obejmuje to obsługę SHA-512, skrótu użytkownika i nazwy użytkownika w notacji rozszerzonej. Dodatkowo zachowana została kompatybilność ze starym RFC 2069 oraz zachowana możliwość stosowania skrótów MD5 i SHA-256.
Oprócz tego istniały ulepszenia w środowiskach wielowątkowych, szczególnie w trybach odpytywania gniazd zewnętrznych. Wydajność została poprawiona, szczególnie w środowiskach wielowątkowych, a także w trybach odpytywania gniazd. Dodatkowo przeprojektowano implementację uwierzytelniania podstawowego, włączając udostępnienie dodatkowej funkcjonalności w interfejsie programowania aplikacji (API).
Z drugiej strony podkreśla reimplementacja inicjalizacji GnuTLS, ze wsparciem dla konkretnych konfiguracji systemu, ponieważ kod inicjujący GnuTLS został sprawdzony i przerobiony. Dodano możliwość korzystania zarówno ze standardowej konfiguracji systemu GnuTLS, jak i specyficznej dla libmicrohttpd, wraz z obsługą zastępowania indywidualnych konfiguracji systemu GnuTLS.
z inne zmiany, które się wyróżniają tej nowej wersji:
- Napraw wyciek pamięci w ścieżce błędu.
- Naprawiono testowanie z GnuTLS na ścieżce innej niż domyślna.
- Naprawiono kompilację niedebugującą bez protokołu HTTPS.
- konfiguracja: Usunięto stare obejście dla systemu Solaris.
- Połączenia TLS „Aktualizacja”: Naprawiono transfer danych w różnych warunkach brzegowych.
- „bootstrap”: poprawki i uproszczenia.
- Zmieniono nazwę nowej podstawowej funkcji uwierzytelniania, ulepszono dokumentację.
- Dodano wykrywanie większej liczby warunków w celu przetwarzania danych bez czekania.
- Ulepszona obsługa zamykania demona w trybie zewnętrznego odpytywania.
- Wypełnianie fd_set zostało ujednolicone i uproszczone.
- Oficjalne wsparcie dla zera w MHD_OPTION_THREAD_POOL_SIZE.
- Naprawiono brakujące elementy .
- Zrefaktoryzowana obsługa wątków w celu obsługi platform bez „nieprawidłowej” wartości identyfikatora.
- Naprawiono MHD_CONNECTION_INFO_DAEMON: zwraca demona głównego. -NP
Na koniec warto wspomnieć, że planowany jest rozwój gałęzi libmicrohttpd 2, która zapewni obsługę protokołów HTTP/2 i HTTP/3, a także prace nad uproszczeniem API i obsługą różnych backendów dla TLS. Rozpoczęcie prac nad nowym oddziałem zostanie sfinansowane ze środków m.in państwowy fundusz technologiczny, założona w Niemczech w celu stymulowania rozwoju otwartej infrastruktury cyfrowej i ekosystemów open source.
Jeżeli jesteś chcesz dowiedzieć się więcej na ten tematmożesz sprawdzić szczegóły W poniższym linku.