Das GNU-Projekt hat die Version 0.9.74 der Bibliothek libmicrohttpd veröffentlicht, die eine einfache API zur Integration der HTTP-Server-FunktionalitĂ€t in Anwendungen bereitstellt. Die Bibliothek unterstĂŒtzt das HTTP-Protokoll 1.1, TLS, inkrementelle Verarbeitung von POST-Anfragen, Basis- und Digest-Authentifizierung, IPv6, SHOUTcast sowie verschiedene Methoden zur Multiplexierung von Verbindungen (select, poll, pthread, thread pool). UnterstĂŒtzte Plattformen sind: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Win32, Symbian und z/OS. Die Bibliothek wird unter der LGPL 2.1+-Lizenz verteilt.
In der neuen Version:
- Eine experimentelle Implementierung des WebSocket-Protokolls wurde hinzugefĂŒgt, die derzeit nicht ausreichend getestet ist und standardmĂ€Ăig deaktiviert ist.
- Die Ăbereinstimmung mit den Spezifikationen der Implementierungen der Protokolle HTTP 1.0/1.1 wurde verbessert.
- Der Code zur Dekodierung von Chunked-Anfragen wurde ĂŒberarbeitet.
- Der Code zur Erstellung von HTTP-Headern bei Antworten wurde vollstÀndig neu geschrieben.
- Es wurde Code hinzugefĂŒgt, um automatisch Fehler im Zusammenhang mit ungĂŒltigen Chunked-Anfragen, zu groĂen Datenmengen und einer falschen Festlegung des Content-Length-Headers zurĂŒckzugeben.
- Die Genauigkeit der Timeout-Zuweisung wurde von Sekunden auf Millisekunden erhöht.
- Interne Optimierungen wurden durchgefĂŒhrt, zum Beispiel verbessertes Speichermanagement, erhöhte Effizienz der Hash-Funktion, und die wiederholte Analyse der Protokollversion und Methode HTTP wurde ausgeschlossen.
- Eine genauere ĂberprĂŒfung der GĂŒltigkeit von HTTP-Headerwerten wurde sichergestellt; die Verwendung von Tabulatoren in den Werten von Antwort-Headern ist erlaubt, allerdings ist die Verwendung von Leerzeichen in benutzerdefinierten Headerwerten untersagt.
- Eine Build-Option ââenable-sanitizers[=address,undefined,leak,user-poison]â wurde hinzugefĂŒgt, um die selektive Aktivierung von Fehlererkennungsmodi im Code zu ermöglichen.
- Eine Projektdatei fĂŒr den Build in MSVC wurde hinzugefĂŒgt.
Quelle: opennet.ru
