Hiawatha (serveur HTTP)
Hiawatha est un serveur web disponible pour divers systèmes d'exploitation. Il est développé par le Néerlandais Hugo Leisink depuis 2002[1].
Pour les articles homonymes, voir Hiawatha.
Développé par | Hugo Leisink |
---|---|
Première version | |
Dernière version | 10.10 () |
Dépôt | gitlab.com/hsleisink/hiawatha |
État du projet | développement actif |
Écrit en | C |
Système d'exploitation | Type Unix |
Environnement | Multiplate-forme |
Langues | anglais |
Type | Serveur HTTP |
Politique de distribution | gratuit |
Licence | Licence publique générale GNU v2 |
Site web | hiawatha-webserver.org |
Hiawatha est le nom d'un héros de certains Amérindiens d'Amérique du Nord.
Historique
Le développement de Hiawatha démarre en ; il est conçu à l'origine comme petit serveur web, adapté à des serveurs anciens ou déclassés. Hugo Leisink, qui est à ce moment-là étudiant en informatique, le destine à être installé dans les résidences étudiantes de Delft (Hollande-Méridionale) aux Pays-Bas. En raison de l'inclination de Leisink pour les questions de sécurité informatique, toute sorte de fonctions relatives à ce domaine particulier sont intégrées de façon expérimentale à Hiawatha ; il en résulte un serveur HTTP très orienté sécurité.
L'édition de de Linux Magazine contient un article présentant Hiawatha[2].
Le , Hugo Leisink annonce sur le blog du projet l'arrêt du développement de nouvelles fonctionnalités, par manque d'intérêt et pour se consacrer à d'autres projets ; les versions à venir du serveur ne seront plus basées que sur la satisfaction de ses besoins personnels et non sur ce que l'on serait en droit d’attendre d'un serveur web moderne tel HTTP/2[3].
La version 10.10 sort le .
Sorties majeures
- 1.0 : . Première version d'un serveur web encore basique mais déjà fonctionnel.
- 2.0 : . Utilisation du multithreading au lieu de forking.
- 3.0 : . Prise en charge de SSL.
- 4.0 : . Un wrapper CGI[4] visant une sécurité améliorée est inclus.
- 5.0 : . Prise en charge de FastCGI.
- 5.2 : . Introduction de Hiawatha dans l'arbre des ports de FreeBSD alors en version 5.2[5] ; OpenBSD l'intègre également à sa sortie en version 5.7 en [6].
- 5.12 : . Apport de la réécriture d'URL.
- 6.0 : . Gestion d'IPv6.
- 6.6 : . Gestion de XSLT.
- 6.10 : . Ajout d'un mécanisme pour lutter contre la cross-site request forgery.
- 7.0 : . Prise en charge du monitoring distant.
- 8.0 : . Autoconf est remplacé par CMake, OpenSSL par PolarSSL.
- 9.0 : . Les connexions clientes sont désormais prises en charge par un pool de threads au lieu de créer les threads à la volée.
- 10.0: , des changements significatifs dans la syntaxe de configuration
Fonctions
Hiawatha met en œuvre ce qui est généralement attendu d'un serveur web moderne et notamment :
- CGI et FastCGI
- Gestion de grands fichiers
- Fonction de proxy inverse
- Gestion du chroot
- Réécriture d'URL
- Prise en charge de SSL et de TLS
- Authentification HTTP (Basic et digest)
- Traffic shaping (régulation de flux)
- Gestion d'IPv6
- Compression HTTP via gzip
- Hébergement virtuel
- Gestion de WebDAV
- Prise en charge de Server Name Indication à partir de la v8.6
Hiawatha présente de nombreuses fonctions axées sur la sécurité que peu de ses concurrents mettent en œuvre ; ainsi Hiawatha embarque des protections contre les injections SQL, contre les failles cross-site scripting (XSS) et cross-site request forgery (CSRF), contre les attaques par déni de service (DoS), contre les liens externes vers des images, ainsi qu'une interdiction paramétrable contre d'éventuels programmeurs malintentionnés ; enfin Hiawatha peut limiter l'exécution de script CGI pour en limiter l'emballement qui provoque généralement une perte de contrôle du serveur[7].
Performance
Même si Hugo Leisink se concentre avant tout sur les aspects relatifs à la sécurité, Hiawatha se comporte bien en termes de vitesse et de performance. Selon des tests de performance réalisés par un chercheur indépendant (SaltwaterC), Hiawatha rivalise avec ses concurrents pour sa vitesse à délivrer du contenu statique[8],[9]. Hiawatha gère FastCGI en combinaison avec l'équilibrage de charge et dispose de son propre utilitaire PHP-FastCGI[10], ce qui le rend rapide et apte à la montée en charge pour servir du contenu dynamique.
Utilisation
Les statistiques sur l'usage de Hiawatha sont fréquemment sous-estimées. En raison de l'accent qu'il met sur la sécurité, le serveur HTTP Hiawatha peut rejeter des requêtes de robots n'étant pas identifiés comme les robots d'indexation des moteurs de recherche, parmi lesquels peuvent se trouver les robots d'entités collectant simplement des statistiques[11].
Notes et références
- About page of Hiawatha webserver
- (en) « Fast and safe with the Hiawatha secure web server »
- (en) Hugo Leisink, « Scaling down the project », sur hiawatha-webserver.org (consulté le )
- Manual page cgi-wrapper - Hiawatha webserver
- FreeBSD Ports of Hiawatha
- OpenBSD Ports of Hiawatha
- List of features
- PHP_web_serving_study « Copie archivée » (version du 23 juillet 2018 sur l'Internet Archive)
- Benchmark of webservers « Copie archivée » (version du 23 juillet 2018 sur l'Internet Archive)
- Manual page php-fcgi - Hiawatha webserver
- Security measures suggested for defining websites