Applicazioni web con Go
Concetti base per l’implementazione
Applicazioni web con Go
Concetti base per l’implementazione

In generale, il linguaggio Go ti permette di sviluppare applicazioni console. Un modo per dare ai tuoi utenti un’interfaccia più user-friendly è quello di sviluppare applicazioni web.
L’applicazioni web usa il browser internet per mostrare all’utente pagine web in cui inserire dati e con cui interagire. Riesce a fare ciò avvalendosi di un server locale che risponde alle richieste del browser secondo il protocollo HTTP, in pratica l’applicazione fornisce pagine html con tutto ciò che ruota loro intorno come un sito qualunque.
Il package standard net/http di Go contiene tipi e funzioni per implementare un’applicazione web a partire proprio dal tipo Server che rappresenta un server web.
Il tipo Server si occuperà della comunicazione con il browser attraverso una connessione locale, all’applicazione resta il compito di elaborare i dati e le pagine html per inviarle attraverso il server.
Richieste e Risposte
Per cominciare, è necessario comprendere il meccanismo di richiesta e risposta alla base di una comunicazione HTTP.
Il browser invia una richiesta al server, il server valuta la richiesta e invia una risposta che, nella maggior parte dei casi, comprende la pagina html da mostrare all’utente. D’altro canto, la richiesta del browser è caratterizzata per lo più dall’url ossia dall’indirizzo che compare nella barra di navigazione. Quando l’utente scrive un indirizzo nella barra, il browser chiede al server la risposta per quell’url. Quando l’utente fa click su un link, il link racchiude l’url che il browser chiederà al server. Se nella pagina html c’è un’immagine o il riferimento a un altro tipo di file, il browser chiede quel file al server… e così via.
Il server quindi deve rispondere a diversi tipi di richieste, ma il modo in cui lo fa è uniforme, cioè con una funzione che ha per parametri *un oggetto di tipo Request che rappresenta la richiesta e un oggetto di tipo ResponseWriter con cui scrivere la risposta**.
Questa funzione è rapprentata principalmente dal tipo HandlerFunc
type HandlerFunc func(ResponseWriter, *Request)
e dal metodo dell’interfaccia Handler
type Handler interface { ServeHTTP(ResponseWriter, *Request) }
Le funzioni con questa firma e soprattutto il tipo Handler sono i gestori di richieste usati dal tipo Server per rispondere al browser. Ci sono gestori di richieste con firme leggermente diverse che ad esempio restituiscono un errore o rinviano ad un altro url, ci sono altri gestori che rispondono inviando un file. Tutti i gestori, però, sono accomunati dal fatto che rispondono ad una richiesta specifica o comunque a richieste dello stesso tipo.
Il tipo Server è una struttura e fra i suoi campi c’è proprio Handler di tipo Handler a cui associare il gestore di richiesta con cui rispondere al browser.
Come detto, però, il server deve rispondere a richieste diverse. La soluzione è un gestore server.
Gestore Server
Il gestore server è un oggetto che implementa l’interfaccia Handler, così da associarlo al server, ma anziché rispondere alla richiesta che riceve, la smista ad altri gestori di richieste. Valuta la richiesta, soprattutto in base al suo url, e la passa al gestore di richiesta in grado di rispondere. In gergo è definito moltiplicatore, multiplexer o mux in inglese, da qui il nome del tipo ServerMux definito nel package net/http che fa proprio questo.

Guida Programmare in Linguaggio Go
Per approfondire l’uso della libreria http e conoscere i concetti base per l’implementazione di applicazioni web, c’è un capitolo specifico nella nuova edizione della mia guida a Go.
Il capitolo 9 della guida “Programmare in Linguaggio Go” descrive gli elementi del package standard net/http, come adoperare i gestori di richiesta e scrivere le risposte con l’uso dei modelli. Inoltre mostra come implementare un gestore server personale e rispondere a richieste asincrone per pagine dinamiche e API. Tutto ciò è messo in pratica con l’implementazione di un’applicazione web, questa applicazione fornisce un’interfaccia alla libreria per gestire un database di note sviluppata nel capitolo precedente.
9 — Applicazioni Web 9.1 — L’interazione fra client e server web 9.2 — Il server HTTP e i gestori di richiesta 9.3 — Request e ResponseWriter 9.4 — Un piccolo esempio 9.5 — Gestori di richieste particolari 9.6 — Un gestore server personale 9.7 — L’applicazione web per le note 9.8 — I modelli html 9.9 — Mettere insieme i pezzi 9.10 — Homepage e inserimento nota 9.11 — Modificare una nota 9.12 — Rimuovere una nota 9.13 — Chiusura dell’applicazione 9.14 — Richieste asincrone, JSON e API
Nel repository della guida su GitHub all’indirizzo https://github.com/rmite/gobook trovi il codice completo della libreria “webman” con il gestore server personale e tutti i file che compongono l’applicazione: codice, modelli, immagini, stili e script.
[embed]rmite/gobook gobook - Codice descritto nella guida "Programmare in Linguaggio Go".github.com
La guida “Programmare in Linguaggio Go” è disponibile in ebook su Amazon, GooglePlay e Kobo, in libro cartaceo su Amazon.
Buona programmazione!
메타데이터
- post_id
- 7eae526c14ba
- slug
- applicazioni-web-con-go-7eae526c14ba
- url
- https://medium.com/@renato-mite/applicazioni-web-con-go-7eae526c14ba
- canonical_url
- https://medium.com/@renato-mite/applicazioni-web-con-go-7eae526c14ba
- author_url
- https://medium.com/@renato-mite
- status
- ok
- fetched_at
- 2026-07-28 00:23:04