Projekt GNU zveřejnil vydání knihovny libmicrohttpd 0.9.74, která představuje jednoduché API pro integrování funkcionality HTTP serveru do aplikací. Knihovna podporuje protokol HTTP 1.1, TLS, inkrementální zpracování POST požadavků, základní a digest autentizaci, IPv6, SHOUTcast a různé metody multiplexování spojení (select, poll, pthread, thread pool). Mezi podporované platformy patří: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Win32, Symbian a z/OS. Knihovna je šířena pod licencí LGPL 2.1+.
V nové verzi:
- Byla přidána experimentální implementace protokolu WebSockets, která zatím není dostatečně otestována a je ve výchozím nastavení zakázána.
- Byla vylepšena shoda se specifikacemi implementací protokolů HTTP 1.0/1.1.
- Byl přepracován kód pro dekódování chunked požadavků.
- Byl zcela přepracován kód pro vytváření HTTP hlaviček při odpovědi.
- Byl přidán kód pro automatické vracení chyb spojených s nesprávnými chunked požadavky, příliš velkou velikostí dat a nesprávným nastavením hlavičky Content-Length.
- Přesnost zadávání časových limitů byla zvýšena z sekund na milisekundy.
- Byly provedeny interní optimalizace, jako je zlepšení správy paměti, zvýšení efektivity hashování a vyloučení opakovaného parsing verze protokolu a metody HTTP.
- Byla zajištěna důkladnější kontrola správnosti hodnot HTTP hlaviček, bylo povoleno používání tabulátoru v hodnotách hlaviček odpovědi, ale bylo zakázáno používání mezery v hodnotách uživatelských hlaviček.
- Byla přidána možnost sestavení ‘—enable-sanitizers[=address,undefined,leak,user-poison]’ pro selektivní zapnutí režimů odhalování problémů v kódu.
- Byl přidán projektový soubor pro sestavení v MSVC.
Zdroj: opennet.ru
