Veröffentlichung der GNU-Bibliothek libmicrohttpd 0.9.74

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

60GB SSD 8Gb DDR4