Karrigell Documentation

Version 2.3.1 02 09 06

English

3. Le serveur Web

Le serveur web intégré est un serveur asynchrone, sur le même principe que les modules asyncore et asynchat de la distribution standard de Python. Pour autant que j'ai pu le tester, il est très efficace, avec des temps de réponse excellents (1)

3.1 Le Répertoire Racine

Le Répertoire Racine est l'endroit où placer les fichiers qui seront atteints au sommet de la hiérarchie des url ; si vous placez monfichier.htm dans ce répertoire, il sera appelé par http://hote/monfichier.htmhote est le nom d'hôte du serveur (localhost si vous travaillez en local)

A l'installation, le Répertoire Racine est le sous-répertoire webapps du Répertoire Serveur. Vous pouvez le modifier dans le fichier de configuration (voir les options de configuration)

3.2 Servir des fichiers statiques

Pour servir des fichiers "statiques" (pages HTML, images GIF ou JPEG, etc) tout ce qu'il y a à faire est de les créer en utilisant votre outil favori et de les sauvegarder dans le Répertoire Racine

Supposons que vous ayez créé un document HTML, monFichier.htm, et que vous l'ayez mis dans le Répertoire Racine. Lancez votre navigateur web préféré et entrez l'URL http://localhost/monFichier.htm ; vous devriez voir votre fichier s'afficher dans le navigateur

Si vous sauvegardez le fichier dans un sous-répertoire il faut ajouter son nom au début de l'URL. Si vous avez un fichier monImage.gif dans le sous-répertoire Images , son URL sera http://localhost/Images/monImage.gif

Pour atteindre des fichiers en-dehors du Répertoire Racine, utilisez les alias (voir les options de configuration)

Si on ne spécifie pas de nom de fichier et que l'url correspond à un répertoire, le serveur cherche dans ce répertoire s'il y a des fichiers de nom index.html, index.htm, index.py, index.pih, index.hip ou index.ks. S'il n'en trouve pas, il affiche la liste des sous-répertoires et des fichiers dans le répertoire ; s'il en trouve plus d'un, il déclenche une exception.

Si l'extension d'un fichier n'est pas spécifié, le serveur cherchera un fichier avec l'une des extensions html, htm, py, pih, hip ou ks. S'il en trouve un, il est utilisé ; s'il en trouve plus d'un, une exception est déclenchée ; s'il n'en trouve aucun, une exception est également déclenchée.

3.3 Options de ligne de commande


La ligne de commande est de la forme :

python Karrigell.py [-P port] [-S] [-D] [initFile]

  • port est le numéro de port HTTP (80 par défaut)
  • S spécifie le mode "silencieux". Par défaut, Karrigell affiche une trace pour chaque requête qu'il reçoit. Avec l'option -S rien n'est affiché
  • D donne à debug la valeur 1 (voir les options de configuration)
  • initFile est le fichier de configuration (voir ci-dessous). Par défaut c'est le fichier Karrigell.ini dans le répertoire du serveur

(1) vous pouvez aussi vous servir d'un autre serveur web intégré, basé sur les modules SocketServer, BaseHTTPServer et SimpleHTTPServer de la distribution standard Python : faites python Karrigell_SocketServer.py

Si vous préférez un serveur multi-thread utilisez python Karrigell_ThreadedSocketServer.py