Buongiorno a tutti, in questo tutorial andiamo a vedere come scrivere in pochissime righe un web server utilizzando come linguaggio di programmazione Python.
Python è un linguaggio che consiglio a chiunque voglia approcciarsi al mondo della programmazione per via della sua sintassi human-friendly e per la sua versatilità (si può realmente fare di tutto con Python).
1. Cos’è un web server?
Come riporta Wikipedia, un web server è un’applicazione software che, in esecuzione su un server, è in grado di gestire le richieste di trasferimento di pagine web di un client, tipicamente un web browser. Su un server web risiedono dunque i siti web tramite hosting.
2. Via col codice
Iniziamo con il creare il file Python (con estensione.py), io per comodità l’ho nominato “http_server.py”.
All’interno della stessa cartella dove abbiamo creato il file dobbiamo creare una cartella che fungerà da root per il nostro web server. Io l’ho nominata “web_server_folder”. Alla fine avremo una struttura di questo tipo

Una volta fatto ciò possiamo passare ad aprire il file http_server.py ed incollare il seguente codice (i commenti spiegano cosa fa ogni singola riga)
# importazione delle librerie necessarie
import http.server
import socketserver
import os
# definizione di una costante col numero di porta
PORT = 8000
# definizione di una costante col nome della cartella root
ROOT_FOLDER = 'web_server_folder'
# settaggio della cartella root
web_dir = os.path.join(os.path.dirname(__file__), ROOT_FOLDER)
os.chdir(web_dir)
# istanziamento del server
Handler = http.server.SimpleHTTPRequestHandler
httpd = socketserver.TCPServer(("", PORT), Handler)
print("serving at port", PORT) # log di successo
# servizio attivo fino all'interruzione manuale del programma
httpd.serve_forever()
3. Esecuzione e test del codice appena scritto
Possiamo lanciare il software appena scritto da terminale usando il comando
python <nome file> se siamo su windows
python3 <nome file> su Linux e MacOs
Se abbiamo fatto tutto correttamente avremmo una risposta del terminale di questo tipo

Se invece dovessimo ottenere qualche errore del tipo
no module named <nome del modulo>
Dovremo procedere con installare il package mancante con
pip install <nome del modulo> // su windows
pip3 install <nome del modulo> // su linux e MacOs
Per testare se il server funziona correttamente, creiamo una pagina index.html all’interno della cartella definita come root nel nostro codice. Dentro il file html scriviamo semplicemente
<h1>Web server funzionante !!! </h1>
Se tutto è andato a buon fine vedremo il seguente risultato a schermo andando col nostro browser su localhost:<porta specificata nel codice>, nel mio caso localhost:8000

Se hai riscontrato qualche problema nel tutorial lascia un commento qui sotto. Cercherò di rispondere nel più breve tempo possibile.
Ciao e alla prossima 🙂