Découvrez le serveur HTTP polyvalent avec TLS, CORS et plus encore

par Korben -

Salut les amis !

Aujourd’hui, je vais vous présenter un nouveau venu dans le monde des serveur HTTP, qui est à la fois simple et riche en fonctionnalités, prenant en charge TLS (HTTPS), CORS, la compression et l’authentification de base.

Installation

L’installation est un jeu d’enfant. Il suffit d’exécuter la commande

cargo install http-server

Et voilà, le tour est joué ! Pour vérifier que tout fonctionne comme prévu, tapez

http-server --help

Ce serveur dispose de plusieurs options assez flexibles, que ce soit pour activer la compression GZip ou pour mettre en place le partage de ressources entre origines (CORS).

Configuration

Lorsque vous exécutez le serveur sans lui donner d’options spécifiques, il utilisera une configuration par défaut. Mais ne vous inquiétez pas, vous pouvez personnaliser cette configuration en créant votre propre fichier de configuration TOML ou en fournissant des arguments en ligne de commande. Certaines des options disponibles incluent l’adresse IP et le port d’écoute, ainsi que le répertoire racine pour servir les fichiers.

En outre, le serveur est livré avec une interface utilisateur d’explorateur de fichiers, vous permettant de naviguer facilement dans le répertoire racine. C’est un peu comme si vous aviez une bibliothèque bien rangée directement dans votre navigateur.

Compression

Bien que la compression soit prise en charge, le serveur ne compressera aucune réponse HTTP par défaut. Pour activer la compression, il suffit d’ajouter le paramètre --gzip dans la commande de lancement ou de modifier le fichier de configuration TOML. À ce jour, seule la compression GZip est prise en charge, mais la prise en charge de Brotli est également prévue.

Il est important de noter que certains types MIME ne sont jamais compressés, tels que application/gzip, pour éviter de causer des problèmes.

TLS (HTTPS)

Le protocole HTTPS est devenu indispensable pour garantir la sécurité et la confidentialité des échanges entre le serveur et les clients. Le serveur http-server offre une solution TLS intégrée, basée sur rustls et hyper-rustls.

Pour utiliser TLS, il vous faudra un certificat et une clé privée RSA correspondante. Un script utile pour générer ces éléments est disponible ici. Notez que cela nécessite l’utilisation d’OpenSSL, alors assurez-vous de l’avoir installé sur votre système.

Cross-Origin Resource Sharing (CORS)

La prise en charge des en-têtes CORS est intégrée par défaut. Plusieurs méthodes de configuration CORS sont possibles, en fonction des en-têtes et des paramètres que vous souhaitez appliquer. En ajoutant simplement l’option --cors, les en-têtes CORS sont ajoutés à chaque réponse HTTP, permettant à n’importe quelle origine d’y accéder.

Pour des configurations plus complexes, vous pouvez spécifier des paramètres supplémentaires, tels que l’autorisation de certaines méthodes HTTP, directement dans le fichier de configuration TOML.

Authentification de base

Si vous souhaitez protéger l’accès à vos ressources, l’authentification de base est là pour vous. Il vous suffit de fournir un nom d’utilisateur et un mot de passe lors de la configuration, et le serveur s’occupera du reste, refusant les demandes avec des informations d’identification incorrectes.

Proxy

Et si vous avez besoin de rediriger les requêtes vers une URL spécifique, pas de problème, http-server peut également servir de proxy !

Alors en conclusion…

Ce que je peux vous dire c’est que http-server est plutôt polyvalent et sera parfait pour servir vos fichiers statiques sur le Web sans avoir recours à Apache ou Nginx. Avec des fonctionnalités telles que TLS, CORS, la compression et l’authentification de base, il deviendra rapidement un allié de taille pour tous vos projets web.

Pour en savoir plus sur ce serveur HTTP et accéder au code source, n’hésitez pas à consulter le lien suivant.