Web server, cos’è e come funziona
La definizione di server viene attribuita a computer in grado di fornire un servizio ad altri computer che lo richiedono. Pertanto quando si parla di web server si parla a tutti gli effetti di un computer la cui funzione principale è quella di fornire ad altri computer pagine Web.
Le pagine Web non sono altro che dei file contengono i testi che leggiamo quando ci colleghiamo al sito completi gli opportuni codici che servono a formattare gli stili dei caratteri così come li vediamo apparire sulle pagine. Ovvero contengono i codici che occorrono ad esempio ad attribuire i colori ai testi, le posizioni ai paragrafi ed agli oggetti, come immagini, video, campi, ed altri componenti che appaiono nelle pagine Web, come i più importanti collegamenti ipertestuali, i link, che rendono possibile la navigazione da un sito all’altro, o da una pagina all’altra, o nello stesso contesto di una pagina.
Quando parliamo di pagina web, parliamo in effetti di pagine ipertestuali, ovvero di file scritti con un linguaggio di formattazione di ipertesti, l’HTML (acronimo di HyperText Markup Language).
I file che costituiscono le pagine di un sito risiedono quindi negli hard disk di questi computer detti WebServer, proprio perché sono in grado di “fornire” le pagine da mostrare a richiesta dei client che ne chiedono la visualizzazione.
E’ il server web a gestire la contemporaneità delle richieste, la capacità di esaudirle nello stesso istante, la modalità con cui avviene lo scambio dei file con il client.
In effetti il client è il browser, con cui un utente naviga in internet, che si collega al server web grazie ad un protocollo particolare di comunicazione, che è l’HTTP ovvero un protocollo di trasferimento di ipertesti (come dice l’acronimo HyperText Transfer Protocol).
All’origine di questo meccanismo vi fu l’idea di Tim Berner Lee che all’inizio degli anni 90, sfruttando la rete Internet, progettò proprio il modello del World Wide Web ovvero questo modello client-server su cui si basa il trasferimento delle pagine HTML.
Server Web e quindi sia un contenitore sia l’esecutore delle richieste. Nei moderni linguaggi per la creazione pagine Web sono stati introdotti anche degli automatismi ovvero dei codici di programmazione che possono servire lato server come linguaggio ASP, o come il PHP che permette di modificare il comportamento del server al volo infatti queste ultime sono in grado di fornire sia pagine Web statiche sia di creare pagine Web dinamiche individuando i contenuti e componendoli all’interno di unico oggetto HTML
Le richieste provenienti dai client raggiungono i server grazie al sistema degli URL (Uniform Resource Locator), gli indirizzi web che individuano univocamente ogni risorsa presente nei server. Un URL è scomponibile in tre parti: il protocollo utilizzato nella comunicazione tra i due noti (solitamente HTTP, ma può essere anche lo HTTPS o FTP), il nome del server o del dominio che ospita la risorsa (“www.google.it”, ad esempio) e il nome del dato “bersaglio” (ad esempio, l’URL https://it.wikipedia.org/wiki/Informatica individua la pagina web relativa alla definizione di “Informatica” all’interno del dominio wikipedia, tramite protocollo HTTPS) .
Ricordiamoci che in Internet e soprattutto sul Web tutte le risorse sono individuate da un indirizzo numerico univoco, l’indirizzo IP, composto da quattro triplette IPv4, o da sei triplette IPv6.
Ogni indirizzo numerico corrisponde univocamente ad un nome mnemonico che è memorizzato nei cosiddetti name server o DNS Domain Name server, che traducono l’indirizzo mnemonico del server con l’indirizzo numeric, a cui il protocollo IP fa riferimento, per stabilire la connessione, (ad esempio, l’URL it.wikipedia.org corrisponde all’indirizzo IPv4 91.198.174.192 ed è a esso equivalente).
Una volta decodificato l’indirizzo IP ed individuato il server contenente la risorsa desiderata, entra in gioco il protocollo HTTP: il browser invia una richiesta GET al server web che risponde inviando il codice HTML della pagina o della risorsa cercata. Il browser legge i tag HTML inclusi nel codice ricevuto in risposta, formatta la pagina così come da indicazioni recepite e la visualizza a schermo.