Cos’è un server web?
Su un web server vengono memorizzati i contenuti presenti sul web e viene garantita la loro raggiungibilità. Quando apri una pagina sul browser, è sempre il web server che invia al tuo computer i singoli componenti di un sito e, affinché il sito sia raggiungibile in ogni momento, il web server deve essere costantemente online.
Prova il nostro VPS. I primi 30 giorni sono in omaggio e se allo scadere del periodo di prova non sarai convinto, ti rimborseremo tutte le spese sostenute.
Server web: definizione e storia
Con un web server (chiamato anche server HTTP) 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 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, inserisci sulla barra degli indirizzi del tuo 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 data center in cui si trova il tuo 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à:
Ulteriori funzioni del server web | |
---|---|
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 HTTP |
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 server di posta, game server o proxy server.
Specificazione: web server e web hosting
Quale ruolo ricoprono i web server nell’hosting? E che cos’è di preciso il web hosting? I web server sono essenzialmente un componente fondamentale dell’hosting, ma spesso non è sempre facile per chi è agli inizi distinguere tra i due termini. In questo paragrafo faremo luce sulle differenze tra i due concetti.
Con il termine web hosting (spesso abbreviato in 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 a un disco fisso, ed è collegato a 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. Se decidi di gestire un host autonomamente da un provider, devi pensare autonomamente alla sua configurazione e per questo ti serve un programma per il web server.
I software (gratuiti) più utilizzati per il web server
Ci sono numerosi programmi attraverso i quali puoi 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 ti presentiamo alcuni dei programmi più utilizzati per server web.
Apache HTTP Server
Il server Apache HTTP (o semplicemente server web Apache) è gratuito e sviluppato in maniera open source. 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: questi rendono l’installazione ancora più semplice. Oltre ad Apache contengono inoltre altri software per database e diversi linguaggi di scripting.
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à.
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 hai 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. Con Plesk (uno dei programmi più famosi per l’accesso remoto) è possibile amministrare un server web da un computer Windows, Linux o Unix. Di conseguenza puoi per esempio gestire un server Linux tramite un computer fisso Windows e viceversa.
Scegliere il server più adatto e configurare il server web
Se desideri impostare un web server per gestire il tuo progetto web, hai prima di tutto bisogno di un host con uno spazio web adeguato. La tendenza in questo campo è quella di rivolgersi a 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 a impostare personalmente il proprio web server.
Al contrario di un server con accesso root, con il quale hai 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 devi preoccuparti troppo di aggiornamenti della sicurezza o dei programmi, ma non rinuncerai comunque a scegliere il software che più ti aggrada per il tuo server. Nell’hosting condiviso non devi affatto occuparti degli aggiornamenti del software, ma hai solo accesso allo spazio web e alle opzioni di configurazione messe a disposizione dal provider.
Solitamente affitti 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 il cloud hosting, 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. Per andare sul sicuro, puoi 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 hai trovato il server più adatto alle tue esigenze, puoi impostarvi il tuo 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
Dopo aver scelto e impostato il web server, devi 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 tuo server. Nel Managed Hosting e in quello condiviso è in genere il provider a occuparsi di tutte le misure di sicurezza; in tutti gli altri casi, spetta a te.
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 amministratore o amministratrice devi acconsentire solo a quello che è assolutamente necessario per il tuo server. Chiudi altrimenti tutte le porte e termina 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 tuo provider non si occupa completamente della protezione del tuo server, dovresti possedere le giuste conoscenze per la gestione del server e una comprensione di base per il funzionamento di un host. Sicuramente puoi anche acquisire queste nozioni, ad esempio provando e imparando con un server in una rete chiusa, dove non devi preoccuparti degli attacchi di cyber criminali.
Come funziona un server web
Un server web funziona secondo il modello client-server. Per esempio: se desideri visitare il sito di IONOS e vorresti aprire sul tuo browser (sul client) il dominio www.ionos.it
, svolgi i seguenti passaggi:
- Dopo aver inserito il nome del sito, il tuo 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 tuo browser. Se adesso clicchi su un link presente sulla homepage di IONOS, viene richiesta al server web un’altra pagina. Pertanto, ricomincia lo stesso processo.
Su IONOS puoi noleggiare il tuo server online a condizioni vantaggiose per una varietà di progetti (server web, server di posta o la tua applicazione personale).