Créer un serveur Web instantané via la ligne de commande du terminal et Python
Table des matières:
Vous voulez partager rapidement un fichier, tester du code ou diffuser quelque chose ? Vous pouvez créer instantanément un serveur Web à partir du répertoire actuel en n'utilisant que python, yup, pas d'apache, pas de nginx, pas de litespeed, tout python, qui est livré avec à peu près toutes les variantes Unix de nos jours. La commande est remarquablement simple compte tenu de son utilité, et testez-la vous-même en ouvrant une fenêtre de terminal et n'importe quel navigateur Web.
Cette astuce démarre un serveur Web simple instantanément avec rien d'autre que python, cela fonctionne sous Mac OS X, Linux, FreeBSD et n'importe quel autre plate-forme Unix qui a python.
Comment démarrer un serveur Web instantané avec Python
Pour créer le serveur Web instantané à partir de la ligne de commande, tapez ce qui suit dans le répertoire que vous souhaitez rendre accessible via les navigateurs et HTTP :
Démarrer un serveur Web simple en Python 2
python -m SimpleHTTPServer
Démarrer Simple Web Server en Python 3
python -m http.server
Cela publiera immédiatement le répertoire actuel en tant que serveur Web, donc si vous avez un fichier index.html qui sera immédiatement affiché, sinon il listera simplement le contenu du répertoire soit sur votre adresse IP locale, soit sur " 0.0.0.0". Notez que le port 8000 est le paramètre de port par défaut pour cette fonction, ce qui signifie que pour accéder au serveur Web à partir d'un navigateur, il faut saisir l'adresse suivante : http://0.0.0.0:8000
Rappelez-vous, sans un fichier index.htm ou index.html dans le répertoire, une simple liste de répertoire du CWD/PWD apparaîtrait à la place dans le navigateur.
Une fois en cours d'exécution, le terminal se mettra à jour au fur et à mesure que les pages et les données sont chargées à partir du serveur Web Python, affichant des informations de journalisation http standard telles que les requêtes GET et PUSH, les fichiers auxquels on accède et par qui, les erreurs 404, Adresses IP, dates, heures et tout ce que vous attendez d'un journal http standard comme si vous suiviez un fichier journal d'accès apache.
Vous pouvez devenir plus sophistiqué si vous le souhaitez et spécifier un port, donnant un certain niveau d'obscurité au serveur Web si vous espérez diffuser quelque chose uniquement à une personne spécifique, ou si vous ne faites que Je ne veux pas qu'il apparaisse sur un balayage de ports standard de 8000.Tout ce que vous avez à faire est de spécifier un numéro de port à la fin de la commande susmentionnée, comme suit :
python -m SimpleHTTPServer 4104
Cela ferait lancer le serveur Web dans le répertoire actuel à l'adresse IP avec le port 4104, par exemple supposons l'adresse IP de l'hôte local : http://127.0.0.1:4104, ou http:// 0.0.0.0:4104 en fonction de vos paramètres.
C'est une astuce très pratique si vous faites du développement Web rapide et que vous voulez le vérifier immédiatement dans un navigateur ou le montrer à quelqu'un d'autre, et que vous ne voulez pas prendre le temps de sftp ou validez-le dans un référentiel. Cela devrait fonctionner sur n'importe quelle variante de système d'exploitation Unix, y compris FreeBSD, Linux, Ubuntu, Redhat, et bien sûr Mac OS X est également inclus.
La vidéo ci-dessous montre un serveur python lancé dans un répertoire avec un simple fichier index.html, elle montre également comment la commande python en cours d'exécution reflète ce qui se passe avec la connexion http comme un serveur http normal log serait :
Faites-nous savoir si vous trouvez des utilisations particulièrement intéressantes ou des secrets supplémentaires pour cette super petite astuce.