GNU-prosjektet har publisert versjonen av biblioteken libmicrohttpd 0.9.74, som tilbyr et enkelt API for integrering av HTTP-servertjenester i applikasjoner. Biblioteket støtter protokollen HTTP 1.1, TLS, inkrementell behandling av POST-forespørsler, basic- og digest-autentisering, IPv6, SHOUTcast og ulike metoder for multiplexing av forbindelser (select, poll, pthread, trådpool). Støttede plattformer inkluderer: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Win32, Symbian og z/OS. Biblioteket distribueres under LGPL 2.1+-lisensen.
I den nye versjonen:
- En eksperimentell implementering av WebSockets-protokollen er lagt til, som foreløpig ikke er godt nok testet og er deaktivert som standard.
- Forbedret samsvar med spesifikasjonene for implementeringene av HTTP 1.0/1.1-protokollene.
- Koden for dekoding av chunked-forespørsler er omskrevet.
- Koden for generering av HTTP-headere i svar er fullstendig omskrevet.
- Koden for automatisk håndtering av feil relatert til ugyldige chunked-forespørsler, for stor datastørrelse og feilinnstillingen av headeren Content-Length er lagt til.
- Nøyaktigheten til tidenes innstillinger er forbedret fra sekunder til millisekunder.
- Interne optimaliseringer har blitt utført, for eksempel forbedret minnehåndtering, økt effektivitet ved hashing og eliminering av duplisert parsing av protokollversjon og HTTP-metoden.
- En strengere validering av HTTP-headerverdier er sikret, bruk av tabulatortegn i verdiene for svarheadere er tillatt, men bruk av mellomrom i verdiene for brukerdefinerte headere er forbudt.
- Byggealternativet '--enable-sanitizers[=address,undefined,leak,user-poison]' er lagt til for selektiv aktivering av problemoppdagingsmoduser i koden.
- En prosjektfil for bygging i MSVC er lagt til.
Kilde: opennet.ru
