nemrég a GNU projekt kiadta a kiadást a könyvtár új verziója libmicrohttpd 0.9.74, Egy egyszerű API-t képvisel a beépített HTTP-kiszolgáló funkciókhoz az alkalmazásokban.
Könyvtár támogatja a HTTP 1.1 protokollt, a TLS-t, a POST kérés növekményes feldolgozását, alap és kivonat hitelesítés, IPv6, SHOUTcast és a kapcsolatok multiplexelésének különféle módszerei (kiválasztás, lekérdezés, pthread, szálkészlet), jelenleg a megvalósítás támogatja a különböző támogatott platformokat, köztük a GNU / Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android , macOS, Win32, Symbian és z / OS.
A GNU libmicrohttpd a szerzőjének igénye miatt született meg, akinek akkoriban szüksége volt egy egyszerű módra egy párhuzamos HTTP-kiszolgáló hozzáadására más projektekhez. A létező alternatívák nem ingyenesek, nem visszatérőek, önállóak, szörnyű kódminőségűek vagy ezek kombinációja voltak.
A jellemzők közül amelyek kiemelkednek ebben a megvalósításban:
- C könyvtár: gyors és kicsi
- Az API egyszerű, kifejező és teljesen visszatérő.
- A megvalósítás HTTP 1.1-kompatibilis
- A HTTP szerver több porton is képes figyelni
- Több szálkezelési mód: Futtatás alkalmazásszálon, belső szálon, szálkészleten és kapcsolatonkénti szálon
- Három különböző socket lekérdezési mód: kiválasztás (), lekérdezés () és epoll
- A rendszerhívások minimális száma a kernel/felhasználói mód további módosításainak elkerülése érdekében
- A támogatott platformok közé tartozik a GNU / Linux, FreeBSD, OpenBSD, NetBSD, Android, Darwin (macOS), W32, OpenIndiana /
- Solaris és z / OS
- Az IPv6 támogatása
- SHOUTcast támogatás
- A POST adatok növekményes feldolgozásának támogatása (opcionális)
- Az alapvető és implicit hitelesítés támogatása (opcionális)
- TLS támogatás (libgnutls szükséges, opcionális)
- A bináris csak körülbelül 32k (TLS-támogatás és egyéb opcionális szolgáltatások nélkül)
A libmicrohttpd 0.9.74 főbb új szolgáltatásai
A könyvtár új verziójában ezt találjuk hozzáadta a WebSockets protokoll kísérleti megvalósítását, amely még nincs jól tesztelve és alapértelmezés szerint le van tiltva.
Egy másik bemutatott újdonság az a HTTP 1.0 / 1.1 protokoll megvalósítási specifikációinak való megfelelés javultEzenkívül a kódot átdolgozták a töredezett kérések dekódolására.
Azt is kiemelik hozzáadott kód, amely automatikusan visszaadja a rossz darabolt kérésekkel kapcsolatos hibákat, túl nagy adatméret és helytelen tartalomhossz-fejlécbeállítás.
Megvalósult belső optimalizálás, például javított memóriakezelés, jobb hash-hatékonyság, valamint a HTTP-módszer és protokollverzió ismétlődő elemzésének megszüntetése.
Azt is meg kell jegyezni, hogy a HTTP-fejlécértékek szigorúbb érvényesítését biztosította, engedélyezte a tabulátor karakter használatát a válaszfejlécértékekben, de megtiltotta a szóközök használatát az egyéni fejlécértékekben.
Amellett, hogy, a válaszként HTTP-fejléceket generáló kódot teljesen átírták és az időtúllépési pontosság másodpercről ezredmásodpercre nőtt.
Hozzáadott összeállítási opció – fertőtlenítők engedélyezése [= cím, nem definiált, szivárgás, felhasználói méreg], amely szelektíven engedélyezi a kódban lévő problémaészlelési módokat.
Javítottam, pontosította, bővítette és javította a Doxy függvények leírását, most megemlítve, hogy az MHD-t sokkal könnyebben lehet megtanulni pusztán a címsorok elolvasásával.
Az új verzióban kiemelkedő többi változás közül:
- Továbbfejlesztett funkcióleírások a microhttpd.h fejlécfájlban.
- API funkciók hozzáadott MHD_get_reason_phrase_len_for () és MHD_create_response_from_buffer_with_free_callback_cls (), MHD_CONNECTION_INFO_HTTP_STATUS zászló, MHD_get_connection_info (), valamint a MHD_CONNECTION_INFO_HTTP_STATUS zászló válaszokat, és MHD_SDRIVE_HDRFKE_HDR_HDRF_HDR_HDRF_HDRF_REND_HDRF_HDRF_REND_HDRF_HDR_RF_RF_HDR_RF_HDRF_ válaszokat.
- Projektfájl hozzáadva az MSVC-ben való összeállításhoz.
- A válaszfejléc formációt teljesen átírták. Az új megvalósítás robusztusabb, könnyebben karbantartható és bővíthető, és jobban követi az RFC HTTP specifikációit.
- Teljesítménybeli fejlesztések: Mostantól a HTTP-verzió és a kérési módszer csak egyszer kerül dekódolásra (korábban az MHD sok karakterlánc-összehasonlítást használt
Végül ha érdekel, hogy többet tudjon meg róla Ezzel a kiadással kapcsolatban megtekintheti a felhasználói kézikönyveket és egyéb információkat a webhelyén.