Le projet GNU a publié libmicrohttpd 0.9.74, une API simple permettant d'intégrer des fonctionnalités de serveur HTTP dans les applications. La bibliothèque prend en charge HTTP 1.1, TLS, le traitement incrémentiel des requêtes POST, l'authentification de base et Digest, IPv6, SHOUTcast et diverses méthodes de multiplexage de connexion (select, poll, pthread, pool de threads). Les plateformes prises en charge incluent : GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOSCette bibliothèque est compatible avec Win32, Symbian et z/OS et est distribuée sous licence LGPL 2.1+.
Dans la nouvelle version:
- Ajout d'une implémentation expérimentale du protocole WebSockets, qui n'est pas encore bien testé et est désactivé par défaut.
- Conformité améliorée avec les spécifications d'implémentation du protocole HTTP 1.0/1.1.
- Le code de décodage des requêtes fragmentées a été retravaillé.
- Le code de génération des en-têtes HTTP en réponse a été entièrement réécrit.
- Code ajouté pour renvoyer automatiquement les erreurs liées aux requêtes fragmentées incorrectes, à la taille des données trop importante et au paramètre d'en-tête Content-Length incorrect.
- La précision de définition des délais d'expiration a été augmentée de quelques secondes à quelques millisecondes.
- Des optimisations internes ont été réalisées, telles qu'une meilleure gestion de la mémoire, une efficacité de hachage accrue et l'élimination de l'analyse en double de la version du protocole et de la méthode HTTP.
- Fournit une validation plus stricte des valeurs d'en-tête HTTP, autorisant les tabulations dans les valeurs d'en-tête de réponse mais interdisant les espaces dans les valeurs d'en-tête personnalisées.
- Ajout de l'option de build « --enable-sanitizers[=address,undefined,leak,user-poison] » pour activer de manière sélective les modes de détection des problèmes dans le code.
- Fichier de projet ajouté pour la construction dans MSVC.
Source: opennet.ru
