Het GNU-project heeft versie 0.9.74 van de libmicrohttpd-bibliotheek gepubliceerd, die een eenvoudige API biedt voor het integreren van HTTP-serverfunctionaliteit in toepassingen. De bibliotheek ondersteunt het HTTP 1.1-protocol, TLS, incrementele verwerking van POST-verzoeken, basis- en digest-authenticatie, IPv6, SHOUTcast en verschillende methoden voor het multiplexen van verbindingen (select, poll, pthread, thread pool). Ondersteunde platforms zijn onder andere GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Win32, Symbian en z/OS. De bibliotheek is uitgebracht onder de LGPL 2.1+-licentie.
In de nieuwe versie:
- Een experimentële implementatie van het WebSockets-protocol is toegevoegd, die momenteel niet goed genoeg is getest en standaard is uitgeschakeld.
- Verbeterde conformiteit met de specificaties van de HTTP 1.0/1.1-protocolimplementaties.
- De code voor het decoderen van chunked-verzoeken is herschreven.
- De code voor het genereren van HTTP-headers in reacties is volledig herschreven.
- Code is toegevoegd voor het automatisch retourneren van fouten met betrekking tot onjuiste chunked-verzoeken, te grote datagrootte en een onjuiste instelling van de Content-Length-header.
- De nauwkeurigheid van het instellen van time-outs is verbeterd van seconden naar milliseconden.
- Interne optimalisaties zijn uitgevoerd, waaronder verbeterd geheugengebruik, verhoogde hash-efficiëntie en het uitsluiten van herhaaldelijke parsing van het protocol- en HTTP-methodeversie.
- Er is een strengere validatie van HTTP-headerwaarden geïmplementeerd, gebruik van het tab-teken in de waarden van response-headers is toegestaan, maar het gebruik van spaties in waarden van aangepaste headers is verboden.
- Een compilatie-optie ‘—enable-sanitizers[=address,undefined,leak,user-poison]’ is toegevoegd voor selectieve inschakeling van probleemdetectiemodi in de code.
- Een projectbestand voor compilatie in MSVC is toegevoegd.
Bron: opennet.ru
