GNU libmicrohttpd 0.9.74 už bol vydaný a toto sú jeho novinky

Nedávno projekt GNU vydal vydanie novú verziu knižnice libmicrohttpd 0.9.74, A predstavujúce jednoduché API pre vstavanú funkčnosť HTTP servera v aplikáciách.

Knižnica podporuje protokol HTTP 1.1, TLS, prírastkové spracovanie požiadaviek POST, základná a digestívna autentifikácia, IPv6, SHOUTcast a rôzne metódy pre multiplexovanie pripojení (select, poll, pthread, thread pool), v súčasnosti má implementácia podporu pre rôzne podporované platformy, vrátane GNU / Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android , macOS, Win32, Symbian a z / OS.

GNU libmicrohttpd sa zrodil kvôli potrebe jeho autora, ktorý v tom čase potreboval jednoduchý spôsob, ako pridať súbežný HTTP server do iných projektov. Existujúce alternatívy boli neslobodné, neopakovateľné, samostatné, s hroznou kvalitou kódu alebo ich kombinácia.

Z charakteristík ktoré sa vyznačujú touto implementáciou:

  • Knižnica C: rýchla a malá
  • API je jednoduché, expresívne a úplne reentry.
  • Implementácia je v súlade s HTTP 1.1
  • HTTP server môže počúvať na viacerých portoch
  • Režimy viacerých vlákien: Spustenie na aplikačnom vlákne, internom vlákne, oblasti vlákien a vlákne na pripojenie
  • Tri rôzne režimy soketového dotazovania: výber (), dotazovanie () a epoll
  • Minimálny počet systémových volaní, aby sa predišlo ďalším zmenám v režime jadra/používateľa
  • Podporované platformy zahŕňajú GNU / Linux, FreeBSD, OpenBSD, NetBSD, Android, Darwin (macOS), W32, OpenIndiana /
  • Solaris a z / OS
  • Podpora protokolu IPv6
  • Podpora SHOUTcast
  • Podpora prírastkového spracovania údajov POST (voliteľné)
  • Podpora základnej a implicitnej autentifikácie (voliteľné)
  • Podpora TLS (vyžaduje libgnutls, voliteľné)
  • Binárna veľkosť je len asi 32 kB (bez podpory TLS a ďalších voliteľných funkcií)

Hlavné nové funkcie libmicrohttpd 0.9.74

V tejto novej verzii knižnice to nájdeme pridaná experimentálna implementácia protokolu WebSockets, ktorý ešte nie je dobre otestovaný a je predvolene vypnutý.

Ďalšou novinkou, ktorá je predstavená, je to zlepšila sa zhoda s implementačnými špecifikáciami protokolu HTTP 1.0 / 1.1Okrem toho bol kód prepracovaný na dekódovanie fragmentovaných požiadaviek.

Je tiež zdôraznené, že pridaný kód na automatické vracanie chýb súvisiacich so zle rozdelenými požiadavkami, príliš veľká veľkosť údajov a nesprávne nastavenie hlavičky Content-Length.

Bolo to zrealizované interné optimalizácie, napríklad zlepšená správa pamäte, zlepšená efektivita hash a eliminácia opakovaného analyzovania metódy HTTP a verzie protokolu.

A tiež je potrebné poznamenať, že poskytla prísnejšie overenie hodnôt hlavičky HTTP, umožnila použitie znaku tabulátora v hodnotách hlavičky odpovede, ale zakázala používanie medzier v hodnotách vlastných hlavičiek.

Okrem toho, kód na generovanie hlavičiek HTTP ako odpoveď bol úplne prepísaný a presnosť časového limitu sa zvýšila zo sekúnd na milisekúndy.

Pridaná možnosť zostavenia –enable-sanitizers [= adresa, nedefinované, únik, používateľská otrava] na selektívne povolenie režimov detekcie problémov v kóde.

Opravené, spresnené, rozšírené a vylepšené popisy funkcií Doxy, pričom sa teraz uvádza, že by malo byť oveľa jednoduchšie naučiť sa MHD len čítaním nadpisov.

Z ďalších zmien, ktoré vynikajú v tejto novej verzii:

  • Vylepšené popisy funkcií v hlavičkovom súbore microhttpd.h.
  • pridané funkcie API MHD_get_reason_phrase_len_for () a MHD_create_response_from_buffer_with_free_callback_cls (), MHD_CONNECTION_INFO_HTTP_STATUS vlajky, MHD_get_connection_info (), ako aj odpovede MHD_CONNECTION_INFO_HTTP_STATUS vlajky a odpovede MHD_SDRIVE_HDRFKE_HDR_HDRF_HDR_HDRF_HDRF_REND_HDRF_HDRF_REND_HDRF_HDR_RF_RF_HDR_RF_HDRF_.
  • Pridaný projektový súbor pre montáž v MSVC.
  • Formácia hlavičky odpovede bola úplne prepísaná. Nová implementácia je robustnejšia, ľahšie sa udržiava a rozšíri a lepšie spĺňa špecifikácie RFC HTTP.
  • Vylepšenia výkonu: Verzia HTTP a metóda požiadavky sa teraz dekódujú iba raz (predtým MHD používal mnoho porovnávaní reťazcov

Konečne ak máte záujem dozvedieť sa o tom viac o tejto verzii si môžete prečítať používateľské príručky a ďalšie informácie na jej webovej lokalite.

Odkaz je tento.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.