Disponibilité: Unix
Le module CGIHTTPServer définit une classe de gestionnaire de requêtes, dont l'interface est compatible avec celle de BaseHTTPServer.BaseHTTPRequestHandler et qui hérite du comportement de SimpleHTTPServer.SimpleHTTPRequestHandler mais peut aussi exécuter des scripts CGI.
Note: Ce module est dépendant d'Unix puisqu'il crée le processus CGI en utilisant os.fork() et os.exec().
Le module CGIHTTPServer définit la classe suivante:
Cependant, cette classe exécutera le script CGI, au lieu de le servir comme un fichier, si elle devine qu'il s'agit d'un script CGI. Seule la détection à partir du répertoire est utilisée - l'autre type de configuration courante des serveurs est de traiter des extensions spéciales comme caractérisant des scripts CGI.
Les fonctions do_GET() et do_HEAD() sont modifiées pour exécuter des scripts CGI et servir le résultat, au lieu de servir des fichiers, si la requête amène quelque part en-dessous du chemin cgi_directories.
La classe CGIHTTPRequestHandler définit l'attribut suivant:
['/cgi-bin', '/htbin'] et décrit les répertoires à traiter comme contenant des scripts CGI.
La classe CGIHTTPRequestHandler définit les méthodes suivantes:
'POST', seulement autorisées pour les scripts CGI. L'erreur 501, "Can only POST to CGI scripts", est produite quand on essaie de POSTer à une url non-CGI.
Notez que les scripts CGI seront exécutés avec un UID d'utilisateur nobody, pour des raisons de sécurité. Les problèmes avec les scripts CGI seront traduits en erreur 403.
Pour un exemple d'utilisation, voyez l'implémentation de la fonction test().
Voir aussi: