Cos’è un server web? E con quali software funziona?
Su un web server vengono memorizzati i contenuti presenti sul web e viene garantita la loro raggiungibilità. Quando aprite una pagina sul browser, è sempre il web server che invia al vostro computer i singoli componenti di un sito e, affinché il sito sia raggiungibile in ogni momento, il web server deve essere costantemente online.
Se un sito deve essere raggiungibile su Internet, avrà bisogno sempre di un server specifico per i suoi contenuti web. Le grandi aziende e le organizzazioni si affidano spesso ad un proprio web server per gestire l’hosting dei contenuti disponibili nella rete aziendale o su Internet. Tuttavia, la maggior parte dei gestori di siti si appoggia ai data center dei provider per pubblicare online i propri contenuti. Sia che disponiate di un vostro web server, sia che vi rivolgiate ad un servizio esterno, avrete sempre bisogno di un software per gestire i dati di un sito e far sì che siano sempre disponibili. Perciò è possibile scegliere tra diversi programmi, pensati per diversi sistemi operativi e per vari settori di applicazione.
Server web: definizione e storia
Con web server si definisce quel tipo di server (parola che deriva dall’inglese: “to serve”, servire) attraverso cui vengono diffusi contenuti su Internet o in una rete locale. Come parte di una rete di computer, un web server trasferisce i documenti ai client (“clienti”), come avviene quando si trasmettono i dati di un sito a un browser. Con il termine “web server” ci si riferisce in genere a due cose diverse, ossia al software di un web server (cioè al programma in sé) o al computer sul quale viene eseguito il software del web server. In quest’ultimo caso il computer viene anche chiamato host (un host può anche comprendere più programmi). Qui di seguito si parla pertanto di un software per il web server (o programma) o di un host, se si fa esplicitamente riferimento a uno dei due significati. Lo sviluppo del web server è legato al fisico britannico e informatico Tim Berners-Lee, che nel 1989 suggerì di realizzare in modo più semplice e veloce lo scambio di informazioni del CERN (l’Organizzazione europea per la ricerca nucleare) tramite la gestione di un sistema ipertestuale. Insieme a Robert Cailliau presentò nel 1990 un progetto, dal quale col passare del tempo, oltre al primo web server chiamato “CERN httpd”, ne conseguì anche il primo browser e alcuni pilastri fondamentali del web (come il linguaggio HTML e il protocollo HTTP). Per questo motivo Berners-Lee è oggi riconosciuto come il fondatore del World Wide Web.
La tecnologia del server web
Il software del server web serve prima di tutto per mettere a disposizione i dati per la visualizzazione di contenuti web, comunicando perciò con un client (di regola un browser o un crawler).
Quando si vuole aprire un sito web, inserite sulla barra degli indirizzi del vostro browser il relativo indirizzo Internet. Il browser invia una richiesta al server web, che risponde ad esempio con una pagina HTML, salvabile come documento statico sull’host o generata in modo dinamico: ciò vuol dire che il server web deve eseguire il codice di programmazione (in PHP o Java) prima di inviare la risposta. Il browser interpreta la risposta, che spesso comporta altre richieste al server, per richiedere ad esempio immagini incluse o file CSS.
Per la trasmissione dei dati viene utilizzato il protocollo di trasferimento HTTP (o la sua variante crittografata HTTPS), che si basa sui protocolli di rete IP e TCP (più raramente UDP). Un server web può consegnare contemporaneamente i contenuti di un sito a tanti diversi computer e quindi ai loro browser. La velocità di elaborazione delle richieste degli utenti dipende dall’hardware e dal carico dell’host, ma anche la complessità dei contenuti web ricopre un ruolo importante, perché ad esempio i contenuti dinamici richiedono più risorse rispetto a quelli statici.
La scelta del server adatto (e quindi anche la decisione di optare per un server virtuale, dedicato o basato su cloud) impedisce un sovraccarico del server web, anche se è comunque possibile che il server non sia sempre raggiungibile. I motivi potrebbero essere difetti dell’hardware o blackout nel centro di elaborazione dati in cui si trova il vostro host. Anche se capita raramente, in caso di downtime del server, un sito non è più raggiungibile in rete, a meno che non sia connesso a una Content Delivery Network (CDN).
Ulteriori funzioni di un server web
Anche se la trasmissione di contenuti è il loro compito principale, i server web hanno molte altre funzionalità:
Sicurezza | Comunicazione protetta tra il server web e il client tramite protocollo crittografato HTTPS |
Autenticazione degli utenti | Autenticazione HTTP per aree specifiche di un’applicazione web |
Reindirizzamento | Inoltro di un documento tramite Rewrite Engine |
Caching | Memorizzazione temporanea di documenti dinamici per rispondere più velocemente alle richieste e per evitare un sovraccarico del server web |
Attribuzione di cookie | Invio ed elaborazione di cookie |
Insieme a un software per server web, un host può contenere anche altri programmi: per esempio un server FTP per l’upload di file o un server database per contenuti dinamici (anche se un provider di regola metterebbe a disposizione diversi hardware). In generale è possibile utilizzare diversi tipi di server per fini completamente diversi: insieme a questi vengono processati anche mail server, game server o proxy server.
Specificazione: web server e hosting
Quale ruolo ricoprono i web server nell’hosting? E che cos’è di preciso l’hosting? I web server sono essenzialmente un componente fondamentale dell’hosting, ma spesso non è sempre facile per i principianti distinguere tra i due termini. In questo paragrafo faremo luce sulle differenze tra i due concetti. Con hosting si indica la memorizzazione e la messa a disposizione dei contenuti web. I file di un sito vengono salvati sullo spazio web (lo spazio online per i progetti web), che corrisponderebbe ad un disco fisso, ed è collegato ad un web server, in modo che i contenuti (ad esempio di un sito) rimangano sempre disponibili online. Un host (web server inteso come computer) e il relativo spazio web si ottengono da un provider, come ad esempio IONOS. Nel caso in cui decidiate di gestire un host autonomamente da un provider, dovete pensare da soli alla sua configurazione e per questo necessitate di un programma per il web server.
I software (gratuiti) più utilizzati per il web server
Ci sono numerosi programmi attraverso i quali potete gestire un server web, molti dei quali sono disponibili gratuitamente su Internet. Il software per server web utilizzato deve essere chiaramente compatibile con il sistema operativo dell’host. La maggior parte dei server web si basa su Unix o Linux (come Apache, Nginx, Tomcat, ecc.), ma funzionano anche su Windows. Microsoft IIS rappresenta però un’eccezione, in quanto è installabile solo su server Windows. Qui di seguito vi presentiamo alcuni dei programmi più utilizzati per server web:
- Apache HTTP Server: il server Apache HTTP (o semplicemente server web Apache) è open source ed è presente in tante versioni diverse. Il programma modulare funziona su quasi ogni sistema operativo ed è il server web più utilizzato. È adatto a contenuti dinamici: si possono integrare senza problemi linguaggi di scripting come PHP, e tramite interfaccia CGI Apache può eseguire altri programmi.
L’installazione di questo programma, benché piuttosto complicata, è però facile da eseguire, utilizzando software come XAMPP o LAMP: questi rendono l’installazione ancora più semplice. Oltre ad Apache contengono inoltre altri software per database e diversi linguaggi di scripting.
Recentemente il server Apache HTTP ha però perso in termini di velocità rispetto ad altri software per server web: molti altri prodotti concorrenti si contraddistinguono per tempi di risposta più brevi nella trasmissione dei dati.
- Apache Tomcat: si tratta di un server web open source, sviluppato in linguaggio Java. Chi volesse creare contenuti web lato server con Java, trova in Apache Tomcat un giusto contenitore web. Inoltre tramite connettore AJP può essere incorporato in un altro server web (per esempio nel server Apache HTTP o Microsoft IIS).
- nginx: anche questo software è gratuito e allo stesso tempo è più di un solito server web. Nginx offre tra le altre cose anche un reverse proxy, che alleggerisce significativamente il server web e lo rende più veloce. In passato nginx godeva di maggiore popolarità. Altre informazioni su questo programma sono disponibili nel nostro articolo introduttivo a nginx.
- Microsoft IIS: Microsoft Internet Information Services (IIS) è un pacchetto software in cui rientra anche un server web. In passato IIS era un componente di sistema per Windows Server: questo programma in alcuni sistemi operativi Windows può essere installato in un secondo momento. Non stupisce tuttavia che Microsoft IIS possa essere utilizzato solo su server Windows.
- LiteSpeed Web Server: si tratta di un software per server web per Linux e Unix, in cui avete la scelta tra una versione open source, una standard gratuita e una per aziende. LiteSpeed Web Server è apprezzato soprattutto per la sua velocità nella trasmissione di dati, che chiaramente è maggiore nella versione a pagamento.
La gestione di un software per server web avviene di regola tramite accesso remoto da un altro computer. Il controllo avviene tramite un software di controllo remoto, ma non dovete scaricare sul vostro computer lo stesso sistema operativo che si trova sul server del vostro host, come illustrato nella guida di Plesk (uno dei programmi più famosi per l’accesso remoto). Con Plesk è possibile amministrare un server web da un computer Windows, Linux o Unix. Di conseguenza potete per esempio gestire un server Linux tramite un computer fisso Windows e viceversa.
Scegliere il server più adatto e configurare il server web
Se volete impostare un web server per gestire il vostro progetto web, avete prima di tutto bisogno di un host con uno spazio web adeguato. La tendenza in questo campo è quella di rivolgersi ad un provider, che mette a disposizione le risorse server dietro pagamento mensile. Chi non sapesse come amministrare un server o avesse poche conoscenze in materia, può ripiegare sulle offerte di hosting condiviso e di Managed Cloud Hosting, così da riuscire tuttavia ad impostare personalmente il proprio web server. Al contrario di un server con accesso root, con il quale avete tutti i permessi, ma anche la responsabilità totale per la sicurezza del server, in un Managed Server il provider si fa carico della maggior parte dei compiti basilari di amministrazione. In questo caso non dovete preoccuparvi troppo di aggiornamenti della sicurezza o dei programmi, ma non rinuncerete comunque a scegliere il software che più vi aggrada per il vostro server. Nell’hosting condiviso non dovete affatto occuparvi degli aggiornamenti del software, ma avete solo accesso allo spazio web e alle opzioni di configurazione messe a disposizione dal provider. Solitamente affittate un server pagando un costo mensile, che varia a seconda della performance e della varietà dei singoli componenti, come le prestazioni del computer (CPU e RAM), lo spazio web e il tipo di disco fisso (SSD o HDD). Chi preferisce mantenere un hosting flessibile e poter regolare le prestazioni del web server, dovrebbe optare per un cloud, grazie al quale si possono adattare in ogni momento le prestazioni di molti componenti in base alle esigenze attuali del progetto web. I requisiti necessari per i rispettivi componenti dell’host dipendono dalle richieste del progetto web: piccoli blog o siti creati con l’intento di servire da biglietti da visita online, se la cavano bene anche con pacchetti di hosting più economici e meno performanti, mentre grandi portali online o siti con contenuti complessi richiedono, invece, dei componenti molto più performanti e con determinati requisiti. Inoltre alcune applicazioni web richiedono un volume di trasferimento dati maggiore rispetto ad altri: ad esempio i siti che offrono contenuti da scaricare, hanno bisogno di una certa velocità di traffico dati, di modo che la trasmissione non sia più lenta del normale e anche se caricate sul vostro sito molti file video o musicali, deve essere possibile mantenere un certo traffico, così da evitare sovraccarichi del server. Per andare sul sicuro, potete scegliere un pacchetto con traffico illimitato, offerto dalla maggior parte dei provider, così è garantito che siano sempre messe a disposizione le giuste capacità per sostenere il traffico dati del proprio progetto. Una volta che avete trovato il server più adatto alle vostre esigenze, potete impostarvi il vostro server web preferito. Ci sono però alcuni aspetti relativi alla sicurezza che si devono tenere a mente durante l’utilizzo di un Managed Server.
Sicurezza del web server
Una volta che avete scelto e impostato il web server, dovete fare sempre attenzione che siano installati gli aggiornamenti più recenti. Le versioni datate presentano delle vulnerabilità che consentono, nel peggiore dei casi, ai criminali e agli hacker di ottenere il controllo sul vostro server. Nel Managed Hosting e in quello condiviso è in genere il provider ad occuparsi di tutte le misure di sicurezza; in tutti gli altri casi, spetta a voi.
Oltre a continui aggiornamenti, il firewall risulta un’ottima protezione contro le violazioni. Anche l’impostazione di una zona demilitarizzata (DMZ) può essere utile e non bisogna dimenticare Fail2ban, un framework che può proteggere dagli accessi non autorizzati.
Un altro principio della sicurezza del web server su cui basarsi è quello che in qualità di amministratori dovete acconsentire solo a quello che è assolutamente necessario per il vostro server. Chiudete altrimenti tutte le porte e terminate i servizi non necessari. Nella gestione di un server anche l’assegnazione di password sicure rientra tra le misure di sicurezza essenziali. In caso di domande e situazioni di emergenza è molto importante un’assistenza clienti affidabile e qualificata, da cui possono trarre vantaggio soprattutto gli amministratori server meno esperti.
Se il vostro provider non si occupa completamente della protezione del vostro server, dovreste possedere le giuste conoscenze per la gestione del server e una comprensione di base per il funzionamento di un host. Sicuramente potete anche acquisire queste nozioni, ad esempio provando e imparando con un server in una rete chiusa, dove non dovete preoccuparvi degli attacchi di cyber criminali.
Come funziona un server web
Un server web funziona secondo il modello client-server. Per esempio: se volete visitare il sito di IONOS e volete aprire sul vostro browser (sul client) il dominio www.ionos.it, svolgete i seguenti passaggi:
- Dopo aver inserito il nome del sito, il vostro browser trasmette prima di tutto l’indirizzo di posta elettronica a un server DNS. Un name server, che compone il sistema DNS, ha accesso a tutti gli indirizzi Internet. Il nome di dominio alfanumerico (www.ionos.it) viene convertito in un indirizzo IP numerico, che viene rinviato al browser.
- A questo punto il browser effettua una richiesta in merito al contenuto del sito, che appare quando il browser manda l’URL del sito richiesto all’indirizzo IP ricevuto, contatta cioè quel server web che contiene le informazioni della pagina.
- Il server web risponde alla richiesta rinviando al browser un documento del sito web richiesto. Quindi il browser manda di nuovo una richiesta al server, questa volta per un altro documento che è parte della pagina web richiesta. Questo procedimento si ripete fino a quando tutti gli elementi della pagina sono stati convertiti e il sito web viene visualizzato nella finestra del vostro browser. Se adesso cliccate su un link presente sulla homepage di IONOS, viene richiesta al server web un’altra pagina. Pertanto ricomincia lo stesso processo.
Pensate di essere ben informati sull’impostazione di un proprio web server e volete affittarne uno? Sia che si tratti di un server dedicato, di un Cloud Server o di un server virtuale, IONOS ha la soluzione ottimale per ogni esigenza. Scoprite i nostri server nel nostro shop online IONOS.