GNU libmicrohttpd 0.9.74 wurde bereits veröffentlicht und dies sind seine Neuigkeiten

Vor kurzem das GNU-Projekt veröffentlichte die Veröffentlichung von die neue Version der Bibliothek libmicrohttpd 0.9.74, A, das eine einfache API für integrierte HTTP-Serverfunktionen in Anwendungen darstellt.

Die Bibliothek unterstützt HTTP 1.1-Protokoll, TLS, inkrementelle Verarbeitung von POST-Anfragen, Basic- und Digest-Authentifizierung, IPv6, SHOUTcast und verschiedene Methoden zum Multiplexen von Verbindungen (Select, Poll, Pthread, Thread-Pool), derzeit unterstützt die Implementierung verschiedene unterstützte Plattformen, einschließlich GNU / Linux, FreeBSD, OpenBSD , NetBSD, Solaris, Android , macOS, Win32, Symbian und z/OS.

GNU libmicrohttpd wurde aufgrund des Bedarfs seines Autors geboren, der zu dieser Zeit eine einfache Möglichkeit brauchte, einen gleichzeitigen HTTP-Server zu anderen Projekten hinzuzufügen. Die bestehenden Alternativen waren unfrei, nicht wiedereintretend, eigenständig, schlechte Codequalität oder eine Kombination davon.

Von den Eigenschaften die zu dieser Implementierung auffallen:

  • Bibliothek C: schnell und klein
  • Die API ist einfach, ausdrucksstark und kann vollständig neu eingegeben werden.
  • Die Implementierung ist HTTP 1.1-kompatibel
  • HTTP-Server kann auf mehreren Ports lauschen
  • Mehrere Threading-Modi: Ausführung auf Anwendungs-Thread, internem Thread, Thread-Pool und Thread pro Verbindung
  • Drei verschiedene Socket-Polling-Modi: select (), poll () und epoll
  • Minimale Anzahl von Systemaufrufen, um zusätzliche Kernel-/Benutzermodusänderungen zu vermeiden
  • Zu den unterstützten Plattformen gehören GNU / Linux, FreeBSD, OpenBSD, NetBSD, Android, Darwin (macOS), W32, OpenIndiana /
  • Solaris und z / OS
  • Unterstützung für IPv6
  • SHOUTcast-Unterstützung
  • Unterstützung für die inkrementelle Verarbeitung von POST-Daten (optional)
  • Unterstützung für grundlegende und implizite Authentifizierung (optional)
  • TLS-Unterstützung (benötigt libgnutls, optional)
  • Die Binärdatei ist nur etwa 32k groß (ohne TLS-Unterstützung und andere optionale Funktionen)

Wichtigste neue Funktionen von libmicrohttpd 0.9.74

In dieser neuen Version der Bibliothek finden wir das eine experimentelle Implementierung des WebSockets-Protokolls hinzugefügt, die noch nicht gut getestet und standardmäßig deaktiviert ist.

Eine weitere Neuheit, die präsentiert wird, ist, dass Konformität mit den HTTP 1.0 / 1.1 Protokollimplementierungsspezifikationen wurde verbessertDarüber hinaus wurde der Code überarbeitet, um fragmentierte Anfragen zu entschlüsseln.

Es wird auch hervorgehoben, dass Code hinzugefügt, um automatisch Fehler im Zusammenhang mit fehlerhaften Chunk-Anfragen zurückzugeben, zu große Datengröße und falsche Content-Length-Header-Einstellung.

Es wurde realisiert interne Optimierungen, B. verbesserte Speicherverwaltung, verbesserte Hash-Effizienz und Eliminierung des wiederholten Parsens der HTTP-Methode und der Protokollversion.

Es wird auch darauf hingewiesen, dass es eine strengere Validierung der HTTP-Header-Werte vorsah, die Verwendung eines Tabulatorzeichens in den Antwort-Header-Werten erlaubte, jedoch die Verwendung von Leerzeichen in den benutzerdefinierten Header-Werten untersagte.

Außerdem, der Code zum Generieren von HTTP-Headern als Antwort wurde komplett neu geschrieben und die Timeout-Präzision wurde von Sekunden auf Millisekunden erhöht.

Build-Option –enable-sanitizers [= address, undefined, Leak, user-poison] hinzugefügt, um selektiv Problemerkennungsmodi im Code zu aktivieren.

Die Beschreibungen der Doxy-Funktionen wurden korrigiert, präzisiert, erweitert und verbessert, jetzt mit dem Hinweis, dass es viel einfacher sein sollte, MHD nur durch das Lesen der Überschriften zu lernen.

Von den anderen Änderungen, die in dieser neuen Version auffallen:

  • Verbesserte Funktionsbeschreibungen in der microhttpd.h-Headerdatei.
  • API-Funktionen hinzugefügt MHD_get_reason_phrase_len_for () und MHD_create_response_from_buffer_with_free_callback_cls (), MHD_CONNECTION_INFO_HTTP_STATUS Flag, MHD_get_connection_info () sowie MHD_CONNECTION_INFO_HTTP_STATUS Flag Antworten und MHD_SDRIVE_HDRFKE_HDR_HDRF_HDR_HDRF_HDRF_REND_HDRF_HDRF_REND_HDRF_HDR_RF_RF_HDR_RF_HDRF_ Antworten.
  • Projektdatei für die Assemblierung in MSVC hinzugefügt.
  • Die Response-Header-Bildung wurde komplett neu geschrieben. Die neue Implementierung ist robuster, einfacher zu warten und erweiterbar und entspricht besser den RFC-HTTP-Spezifikationen.
  • Leistungsverbesserungen: HTTP-Version und Anfragemethode werden jetzt nur einmal dekodiert (zuvor verwendete MHD viele Zeichenfolgenvergleiche

Schließlich wenn Sie mehr darüber wissen möchten Informationen zu dieser Version finden Sie in den Benutzerhandbüchern und anderen Informationen auf der Website.

Der Link ist dies.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.