11.15 SimpleHTTPServer --- Gestionnaire simple de requêtes HTTP

Le module SimpleHTTPServer définit une classe de gestionnaire de requête, dont l'interface est compatible avec BaseHTTPServer.BaseHTTPRequestHandler et qui sert des fichiers seulement depuis le répertoire de base.

Le module SimpleHTTPServer définit la classe suivante:

SimpleHTTPRequestHandler(requete, adresse_client, serveur)
Cette classe est utilisée pour servir des fichiers depuis le répertoire courant et au-dessous, en calquant la structure du répertoire sur les requêtes HTTP.

Une bonne partie du travail est effectuée par la classe de base BaseHTTPServer.BaseHTTPRequestHandler, par exemple l'analyse de la requête. Cette classe implémente les fonctions do_GET() et do_HEAD().

La classe SimpleHTTPRequestHandler définit les variables membres suivantes:

server_version
Vaut "SimpleHTTP/" + __version__, où __version__ est défini dans le module.

extensions_map
Un dictionnaire qui fait correspondre des suffixes à des types MIME. La valeur par défaut est indiquée par la chaîne vide, et correspond à text/plain. La correspondance est faite sans tenir compte de la casse, et ne doit contenir que des clés en lettres minuscules.

La classe SimpleHTTPRequestHandler définit les méthodes suivantes:

do_HEAD()
Cette méthode sert le type de requête 'HEAD': elle envoie les en-têtes que le serveur enverrait pour la requête GET équivalente. Voir la méthode do_GET() pour des explications plus complètes sur les en-têtes possibles.

do_GET()
La requête est mise en correspondance avec un fichier local en interprétant la requête comme un chemin relatif dans le répertoire de travail courant.

Si la requête correspond à un répertoire, une réponse 403 est produite, suivie de l'explication 'Directory listing not supported'. Toute exception IOError survenant en essayant d'ouvrir le fichier demandé est associée à une erreur 404, 'File not found'. Sinon, le type de contenu est deviné en se servant de la variable extensions_map.

Un 'Content-type:' avec le type de contenu deviné est produit, puis une ligne vide, signifiant la fin des en-têtes, puis le contenu du fichier. Le fichier est toujours ouvert en mode binaire.

Pour un exemple d'utilisation, voyez l'implémentation de la fonction test().

Voir aussi:

Module BaseHTTPServer:
Implémentation d'une classe de base pour serveur Web et gestionnaire de requête.