GNU libmicrohttpd 0.9.74 har allerede blitt utgitt, og dette er nyhetene

nylig GNU-prosjektet lanserte utgivelsen av den nye versjonen av biblioteket libmicrohttpd 0.9.74, En som representerer et enkelt API for innebygd HTTP-serverfunksjonalitet i applikasjoner.

Bibliotek støtter HTTP 1.1-protokoll, TLS, inkrementell behandling av POST-forespørsel, grunnleggende autentisering og sammendragsgodkjenning, IPv6, SHOUTcast og ulike metoder for multipleksing av tilkoblinger (velg, poll, pthread, thread pool), for tiden har implementeringen støtte for ulike støttede plattformer, inkludert GNU / Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android , macOS, Win32, Symbian og z/OS.

GNU libmicrohttpd ble født på grunn av behovet til forfatteren, som på det tidspunktet trengte en enkel måte å legge til en samtidig HTTP-server til andre prosjekter. De eksisterende alternativene var ikke-gratis, ikke-reentrant, frittstående, forferdelig kodekvalitet eller en kombinasjon av disse.

Av egenskapene som skiller seg ut for denne implementeringen:

  • Bibliotek C: raskt og lite
  • API-en er enkel, uttrykksfull og fullstendig reentry.
  • Implementeringen er HTTP 1.1-kompatibel
  • HTTP-serveren kan lytte pÃ¥ flere porter
  • Flere trÃ¥dmoduser: Kjør pÃ¥ applikasjonstrÃ¥d, intern trÃ¥d, trÃ¥dpool og trÃ¥d per tilkobling
  • Tre forskjellige socket polling-moduser: velg (), polling () og epoll
  • Minimum antall systemanrop for Ã¥ unngÃ¥ ytterligere endringer i kjerne-/brukermodus
  • Støttede plattformer inkluderer GNU / Linux, FreeBSD, OpenBSD, NetBSD, Android, Darwin (macOS), W32, OpenIndiana /
  • Solaris og z/OS
  • Støtte for IPv6
  • SHOUTcast-støtte
  • Støtte for inkrementell behandling av POST-data (valgfritt)
  • Støtte for grunnleggende og implisitt autentisering (valgfritt)
  • TLS-støtte (krever libgnutls, valgfritt)
  • Binæren er bare omtrent 32k (uten TLS-støtte og andre valgfrie funksjoner)

De viktigste nye funksjonene til libmicrohttpd 0.9.74

I denne nye versjonen som presenteres fra biblioteket kan vi finne det la til en eksperimentell implementering av WebSockets-protokollen, som ikke er godt testet ennå og er deaktivert som standard.

En annen nyhet som presenteres er det samsvar med implementeringsspesifikasjonene for HTTP 1.0 / 1.1-protokollen ble forbedretI tillegg ble koden omarbeidet for å dekode fragmenterte forespørsler.

Det er også fremhevet at lagt til kode for å automatisk returnere feil relatert til dårlige fragmenterte forespørsler, for stor datastørrelse og feil innstilling for innholdslengdeoverskrift.

Det har blitt realisert interne optimaliseringer, for eksempel forbedret minneadministrasjon, forbedret hash-effektivitet og eliminering av gjentatt parsing av HTTP-metoden og protokollversjonen.

Og det bemerkes også at det ga en strengere validering av HTTP-hodeverdiene, tillot bruk av et tabulatortegn i svarhodeverdiene, men forbudt bruk av mellomrom i de tilpassede overskriftsverdiene.

Bortsett fra det, koden for å generere HTTP-hoder som svar har blitt fullstendig omskrevet og tidsavbruddspresisjonen er økt fra sekunder til millisekunder.

Lagt til byggealternativ –enable-sanitizers [= adresse, udefinert, lekkasje, brukergift] for selektivt å aktivere problemdeteksjonsmoduser i kode.

Rettet, tydeliggjort, utvidet og forbedret beskrivelsene av Doxy-funksjoner, og nevner nå at det burde være mye lettere å lære MHD bare ved å lese overskriftene.

Av de andre endringene som skiller seg ut i denne nye versjonen:

  • Forbedrede funksjonsbeskrivelser i headerfilen microhttpd.h.
  • API-funksjoner tilsatt MHD_get_reason_phrase_len_for () og MHD_create_response_from_buffer_with_free_callback_cls (), MHD_CONNECTION_INFO_HTTP_STATUS flagg, MHD_get_connection_info (), sÃ¥ vel som MHD_CONNECTION_INFO_HTTP_STATUS flagg responser, og MHD_SDRIVE_HDRFKE_HDR_HDRF_HDR_HDRF_HDRF_REND_HDRF_HDRF_REND_HDRF_HDR_RF_RF_HDR_RF_HDRF_ responser.
  • Lagt til prosjektfil for montering i MSVC.
  • Svarhodeformasjonen ble fullstendig omskrevet. Den nye implementeringen er mer robust, enklere Ã¥ vedlikeholde og utvidbar, og følger RFC HTTP-spesifikasjonene bedre.
  • Ytelsesforbedringer: NÃ¥ dekodes HTTP-versjon og forespørselsmetode bare én gang (tidligere brukte MHD mange strengsammenligninger

Endelig hvis du er interessert i å vite mer om det om denne utgivelsen kan du se brukermanualene og annen informasjon på nettstedet.

Koblingen er denne.