Salve, sono Gianni Marzaloni, sviluppatore C# per HTML.it, cerchiamo di fare una panoramica sul mondo dei Web Server. Il modello di comunicazione seguito da Internet e detto Client/Server: il client inoltra delle richieste di informazioni al server e il server le accetta e risponde.
In particolare nel Web il client è il browser con cui navighiamo, ad esempio Internet Explorer, ed il server è proprio il web server che ci fornisce le pagine Web da noi richieste.
Quando digitiamo un indirizzo sul browser stiamo semplicemente richiedendo un file. Seguendo il sistema Client/Server, il Web server controlla l'esistenza del file richiesto e restituisce, in caso positivo, il codice HTML della pagina, oppure il classico "errore 404", cioè "Pagina non trovata".
Una volta ricevuto il codice HTML, il browser lo interpreta per visualizzare la pagina richiesta. All'interno di una pagina possono esserci riferimenti ad oggetti esterni, come ad esempio immagini o video. Per ciascuno di questi oggetti il browser ripete la richiesta al server ed attende la risposta con il file cercato.
Il dialogo con il browser avviene grazie ad un linguaggio comune: il protocollo HTTP. HTTP, acronimo di Hyper Text Transfer Protocol, è un protocollo di tipo "state-less" (senza stato): nè il client ne il server hanno l'obbligo di tenere traccia dello stato della comunicazione. In pratica ogni richiesta da noi effettuata è indipendente dalle precedenti, e si conclude al momento della ricezione del file.
L'HTTP è ottimizzato per la trasmissione di pagine Web ed è stato una delle componenti fondamentali della diffusione delle informazioni su Web. Tuttavia la realizzazione di servizi, come il commercio elettronico e i motori di ricerca, richiede la generazione automatica di pagine, costruite in base alle richieste dell'utente. Le pagine generate in questo modo sono dette "dinamiche".
Dalla realizzazione di "siti Web dinamici" si è arrivati alla costruzione di vere e proprie applicazioni da usare direttamente online. Per sviluppare queste applicazioni ci sono linguaggi di programmazione "lato server", particolarmente adatti alla costruzione di pagine Web dinamiche. Tra questi ricordiamo le pagine ASP, linguaggi come PHP ed il più recente Framework .NET della Microsoft.
Grazie a questi linguaggi è possibile utilizzare oggetti come Cookie e Sessioni, che permetto di aggirare il problema "state-less" del protocollo HTTP, memorizzando sul computer del visitatore o in memoria sul server, le informazioni necessarie alle applicazioni Web.
L'iniseme dei web server presenti su Internet formano il WWW (World Wide Web) che oggi è il servizio più utilizzato dagli utenti Internet e che negli anni ha creato una vastissima risorsa pubblica di informazioni