Un server Web è un software e hardware che utilizza HTTP (Hypertext Transfer Protocol) e altri protocolli per rispondere alle richieste dei client effettuate tramite il World Wide Web. Il compito principale di un server Web è visualizzare il contenuto del sito Web tramite l'archiviazione, l'elaborazione e la distribuzione di pagine Web agli utenti. Oltre a HTTP, i server Web supportano anche SMTP (Simple Mail Transfer Protocol) e FTP (File Transfer Protocol), utilizzati per la posta elettronica, il trasferimento di file e l'archiviazione.
L'hardware del server Web è connesso a Internet e consente lo scambio di dati con altri dispositivi collegati, mentre il software del server Web controlla il modo in cui un utente accede ai file ospitati. Il processo del server web è un esempio del modello client / server. Tutti i computer che ospitano siti Web devono disporre di un software per server Web.
I server Web vengono utilizzati nell'hosting Web o nell'hosting di dati per siti Web e applicazioni basate sul Web o applicazioni Web.
Come funzionano i server web?
L'accesso al software del server Web avviene tramite i nomi di dominio dei siti Web e garantisce la consegna del contenuto del sito all'utente richiedente. Anche il lato software è composto da diversi componenti, con almeno un server HTTP. Il server HTTP è in grado di comprendere HTTP e URL. Come hardware, un server Web è un computer che memorizza il software del server Web e altri file relativi a un sito Web, come documenti HTML, immagini e file JavaScript.
Quando un browser Web, come Google Chrome o Firefox, necessita di un file ospitato su un server Web, il browser richiederà il file tramite HTTP. Quando la richiesta viene ricevuta dal server web, il server HTTP accetterà la richiesta, troverà il contenuto e lo rimanderà al browser tramite HTTP.
Più specificamente, quando un browser richiede una pagina da un server web, il processo seguirà una serie di passaggi. Innanzitutto, una persona specificherà un URL nella barra degli indirizzi di un browser web. Il browser Web otterrà quindi l'indirizzo IP del nome di dominio, traducendo l'URL tramite DNS (Domain Name System) o effettuando una ricerca nella cache. Questo porterà il browser a un server web. Il browser richiederà quindi il file specifico al server Web tramite una richiesta HTTP. Il web server risponderà, inviando al browser la pagina richiesta, nuovamente, tramite HTTP. Se la pagina richiesta non esiste o se qualcosa va storto, il server web risponderà con un messaggio di errore. Il browser sarà quindi in grado di visualizzare la pagina web.
È inoltre possibile ospitare più domini su un server web.
Esempi di utilizzi del server web
I server Web spesso fanno parte di un pacchetto più ampio di programmi relativi a Internet e Intranet utilizzati per:
- invio e ricezione di e-mail;
- download di richieste di file FTP (File Transfer Protocol); e
- creazione e pubblicazione di pagine web.
Molti server Web di base supporteranno anche lo scripting lato server, che viene utilizzato per impiegare script su un server Web in grado di personalizzare la risposta al client. Lo scripting lato server viene eseguito sulla macchina server e in genere ha un ampio set di funzionalità, che include l'accesso al database. Il processo di scripting lato server utilizzerà anche Active Server Pages (ASP), Hypertext Preprocessor (PHP) e altri linguaggi di scripting. Questo processo consente inoltre di creare dinamicamente documenti HTML.
Server web dinamici e statici
È possibile utilizzare un server Web per fornire contenuto statico o dinamico. Statico si riferisce al contenuto visualizzato così com'è, mentre il contenuto dinamico può essere aggiornato e modificato. Un server web statico sarà composto da un computer e da un software HTTP. È considerato statico perché il server invierà i file ospitati così come sono a un browser.
I browser Web dinamici consisteranno in un server Web e altro software come un server di applicazioni e un database. È considerato dinamico perché il server delle applicazioni può essere utilizzato per aggiornare i file ospitati prima che vengano inviati a un browser. Il server web può generare contenuto quando viene richiesto dal database. Sebbene questo processo sia più flessibile, è anche più complicato.
Software per server web comune e superiore sul mercato
Sono disponibili numerosi server Web comuni, alcuni tra cui:
- Apache HTTP Server. Sviluppato da Apache Software Foundation, è un server web gratuito e open source per Windows, Mac OS X, Unix, Linux, Solaris e altri sistemi operativi; necessita della licenza Apache.
- Microsoft Internet Information Services (IIS). Sviluppato da Microsoft per piattaforme Microsoft; non è open source, ma ampiamente utilizzato.
- Nginx. Un popolare server web open source per gli amministratori grazie al suo leggero utilizzo delle risorse e alla sua scalabilità. Può gestire molte sessioni simultanee grazie alla sua architettura basata sugli eventi. Nginx può anche essere utilizzato come server proxy e bilanciatore del carico.
- Lighttpd. Un server web gratuito fornito con il sistema operativo FreeBSD. È visto come veloce e sicuro, mentre consuma meno potenza della CPU.
- Server Web Sun Java System. Un server web gratuito di Sun Microsystems che può essere eseguito su Windows, Linux e Unix. È ben attrezzato per gestire siti Web di dimensioni medio-grandi.
I principali server web includono Apache, Internet Information Services (IIS) di Microsoft e Nginx, il motore X. Altri server web includono il server NetWare di Novell, Google Web Server (GWS) e la famiglia di server Domino di IBM.
Le considerazioni nella scelta di un server web includono quanto bene funzioni con il sistema operativo e altri server; la sua capacità di gestire la programmazione lato server; caratteristiche di sicurezza; e gli strumenti di pubblicazione, motore di ricerca e creazione di siti che ne derivano. I server Web possono anche avere configurazioni diverse e impostare valori predefiniti. Per creare prestazioni elevate, un server Web, un throughput elevato e una bassa latenza aiuteranno.
Pratiche di sicurezza del server web
Ci sono molte pratiche di sicurezza che le persone possono impostare riguardo all'uso del server web che possono rendere l'esperienza più sicura. Alcuni esempi di pratiche di sicurezza possono includere processi come:
- un proxy inverso, progettato per nascondere un server interno e fungere da intermediario per il traffico proveniente da un server interno;
- restrizione dell'accesso tramite processi quali la limitazione dell'accesso dell'host web alle macchine dell'infrastruttura o l'utilizzo di Secure Socket Shell (SSH);
- mantenere i server Web aggiornati e aggiornati per garantire che il server Web non sia soggetto a vulnerabilità;
- monitoraggio della rete per assicurarsi che non vi siano attività o attività non autorizzate; e
- l'utilizzo di un firewall e SSL come firewall possono monitorare il traffico HTTP mentre avere un Secure Sockets Layer (SSL) può aiutare a mantenere i dati protetti.