11.17 SimpleHTTPServer -- Semplice gestore di richieste HTTP

Il modulo SimpleHTTPServer definisce una classe per la gestione di richieste ed un'interfaccia compatibile con BaseHTTPServer.BaseHTTPRequestHandler che serve file solo dalla directory di base.

Il modulo SimpleHTTPServer definisce le seguenti classi:

class SimpleHTTPRequestHandler( request, client_address, server)
Questa classe viene usata per fornire file dalla directory corrente e discendenti, mappando direttamente la struttura delle directory alla richiesta HTTP.

Una buona parte del lavoro viene eseguito dalla classe di base BaseHTTPServer.BaseHTTPRequestHandler, come l'analisi della richiesta. Questa classe implementa le funzioni do_GET() e do_HEAD().

La classe SimpleHTTPRequestHandler definisce le seguenti variabili membro:

server_version
Questa sarà "SimpleHTTP/" + __version__, dove __version__ viene definita nel modulo.

extensions_map
Un dizionario che mappa i suffissi con i tipi MIME. Il valore predefinito è rappresentato da una stringa vuota, ed è considerato text/plain. La mappa viene usata senza il distinguo maiuscolo/minuscolo e dovrebbe contenere solo chiavi in minuscolo.

La classe SimpleHTTPRequestHandler definisce i seguenti metodi:

do_HEAD( )
Questo metodo risponde alle richieste di tipo 'HEAD': invia le intestazioni equivalenti alla richiesta GET. Vedere il metodo do_GET() per una più completa spiegazione sulle intestazioni possibili.

do_GET( )
La richiesta viene mappata con un file locale attraverso l'interpretazione della richiesta come un percorso relativo alla directory di lavoro corrente.

Se la richiesta viene mappata con una directory, viene inviata una risposta 403, seguita dalla spiegazione 'Directory listing not supported'. Ogni eccezione IOError durante l'apertura del file richiesto viene mappata ad un errore 404, 'File not found'. Altrimenti il tipo di contenuto viene elaborato usando la variabile extensions_map.

Un'intestazione 'Content-type:' con il tipo di contenuto presunto è l'output inviato, insieme ad una riga vuota, che si traduce nella fine delle intestazioni e quindi viene il contenuto del file. Il file viene sempre aperto in modalità binaria.

Per un esempio sull'uso vedere l'implementazione della funzione test().

Vedete anche:

Modulo BaseHTTPServer:
Implementazione della classe di base per server Web e gestori di richieste.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.