GNU libmicrohttpd 0.9.74 on jo julkaistu ja nämä ovat sen uutisia

äskettäin GNU-projekti julkaisi julkaisun kirjaston uusi versio libmicrohttpd 0.9.74, Edustaa yksinkertaista API:ta sovellusten sisäänrakennetuille HTTP-palvelintoiminnoille.

Kirjasto tukee HTTP 1.1 -protokollaa, TLS:ää, POST-pyyntöjen lisäkäsittelyä, perus- ja tiivistelmätodennus, IPv6, SHOUTcast ja erilaiset menetelmät yhteyksien multipleksointiin (select, poll, pthread, thread pool), tällä hetkellä toteutuksessa on tuki useille tuetuille alustoille, mukaan lukien GNU / Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android , macOS, Win32, Symbian ja z / OS.

GNU libmicrohttpd syntyi sen tekijän tarpeesta, joka tuolloin tarvitsi helpon tavan lisätä samanaikainen HTTP-palvelin muihin projekteihin. Nykyiset vaihtoehdot olivat ei-vapaita, ei-palautuvia, itsenäisiä, kauhealaatuisia koodia tai näiden yhdistelmä.

Ominaisuuksista jotka erottuvat tästä toteutuksesta:

  • Kirjasto C: nopea ja pieni
  • API on yksinkertainen, ilmeikäs ja täysin palaava.
  • Toteutus on HTTP 1.1 -yhteensopiva
  • HTTP-palvelin voi kuunnella useita portteja
  • Useita ketjutustiloja: Suorita sovellussäikeessä, sisäisessä säikeessä, säikeryhmässä ja säikeessä yhteyskohtaisesti
  • Kolme erilaista socket pollaustilaa: valitse (), poll () ja epoll
  • Järjestelmäkutsujen vähimmäismäärä ylimääräisten ytimen/käyttäjätilan muutosten välttämiseksi
  • Tuetut alustat ovat GNU / Linux, FreeBSD, OpenBSD, NetBSD, Android, Darwin (macOS), W32, OpenIndiana /
  • Solaris ja z/OS
  • Tuki IPv6: lle
  • SHOUTcast-tuki
  • Tuki POST-tietojen asteittaiselle käsittelylle (valinnainen)
  • Perus- ja implisiittisen todennuksen tuki (valinnainen)
  • TLS-tuki (vaatii libgnutls, valinnainen)
  • Binaari on vain noin 32k (ilman TLS-tukea ja muita valinnaisia ​​ominaisuuksia)

Libmicrohttpd 0.9.74:n tärkeimmät uudet ominaisuudet

Tästä kirjaston uudesta versiosta löydämme sen lisäsi WebSockets-protokollan kokeellisen toteutuksen, jota ei ole vielä testattu kunnolla ja se on oletuksena pois käytöstä.

Toinen uutuus, joka esitetään, on se HTTP 1.0 / 1.1 -protokollan toteutusmääritysten noudattamista parannettiinLisäksi koodia muokattiin uudelleen hajanaisten pyyntöjen purkamiseksi.

Se on myös korostettu lisätty koodi palauttamaan automaattisesti huonoihin ryhmiteltyihin pyyntöihin liittyvät virheet, liian suuri tietokoko ja virheellinen Content-Length-otsikkoasetus.

Se on toteutunut sisäiset optimoinnit, esimerkiksi parannettu muistinhallinta, parantunut hash-tehokkuus ja eliminoitu HTTP-menetelmän ja protokollaversion toistuva jäsennys.

Ja on myös huomattava, että HTTP-otsikkoarvojen tiukempi validointi tarjottiin, sallii sarkainmerkin käytön vastauksen otsikkoarvoissa, mutta kielsi välilyöntien käytön mukautetuissa otsikkoarvoissa.

Sen lisäksi koodi HTTP-otsikoiden luomiseksi vastauksena on kirjoitettu kokonaan uudelleen ja aikakatkaisun tarkkuutta on lisätty sekunneista millisekunteihin.

Lisätty koontivaihtoehto –enable-sanitizers [= osoite, määrittelemätön, vuoto, käyttäjän myrkky], joka mahdollistaa ongelmien havaitsemisen tilat valikoivasti koodissa.

Korjattu, selkeytetty, laajennettu ja parannettu Doxy-ominaisuuksien kuvaukset, joissa nyt mainitaan, että MHD:n oppimisen pitäisi olla paljon helpompaa pelkästään lukemalla otsikot.

Muista muutoksista, jotka erottuvat tässä uudessa versiossa:

  • Parannetut toimintokuvaukset microhttpd.h-otsikkotiedostossa.
  • API toimintoja lisätään MHD_get_reason_phrase_len_for () ja MHD_create_response_from_buffer_with_free_callback_cls (), MHD_CONNECTION_INFO_HTTP_STATUS lippu, MHD_get_connection_info (), sekä MHD_CONNECTION_INFO_HTTP_STATUS lippu vastauksia, ja MHD_SDRIVE_HDRFKE_HDR_HDRF_HDR_HDRF_HDRF_REND_HDRF_HDRF_REND_HDRF_HDR_RF_RF_HDR_RF_HDRF_ vastauksia.
  • Lisätty projektitiedosto kokoonpanoa varten MSVC:ssä.
  • Vastauksen otsikon muodostus kirjoitettiin kokonaan uudelleen. Uusi toteutus on kestävämpi, helpompi ylläpitää ja laajennettava, ja se noudattaa paremmin RFC HTTP-spesifikaatioita.
  • Suorituskykyparannukset: Nyt HTTP-versio ja pyyntömenetelmä puretaan vain kerran (aiemmin MHD käytti monia merkkijonojen vertailua

Vihdoin jos olet kiinnostunut tietämään siitä lisää tästä julkaisusta voit tutustua sen verkkosivustolla oleviin käyttöoppaisiin ja muihin tietoihin.

Linkki on tämä.