Il web server ha un solo compito, quello più importante, ossia permettere la visualizzazione di un particolare sito al web.
Si tratta di una comunicazione che avviene tra il server e il client, e tutto questo è reso possibile da un protocollo di trasferimento: Hyper Text Transfer Protocol (HTTP) basato su protocolli di rete IP e TCP.
In modo più pratico il web server va a gestire su un pc host le richieste di trasferimento di un sito web verso un client, ossia un browser. Accedendo al browser si digita un URL e verrà effettuata una richiesta al server per il collegamento allo stesso URL.
Nel caso in cui questo processo non venisse accettato, tale richiesta avrà esito negativo e sarà possibile capirlo attraverso un messaggio di errore (es. ERROR, NOT FOUND, cioè non trovato).
In base all’hardware preso in considerazione, ai contenuti del web (quelli dinamici necessitano di più risorse rispetto a quelli statici) e ad altri elementi, gli elaborati delle richieste variano in velocità.
WEB SERVER
Un web server non è altro che un’applicazione software, e naturalmente più dell’80% dei siti web vengono salvaguardati e gestiti da web server open source.
Gran parte di essi variano in base alla loro formazione e alle loro caratteristiche che li contraddistinguono da altri server web, i quali vengono differenziati grazie ai frequenti aggiornamenti, alla loro stabilità e altri attributi. Alcuni server sono adatti a soddisfare particolari necessità e per gestirli al meglio ci sono una serie di programmi per agevolare il tutto.
Vediamo nello specifico.
APACHE HTTP SERVER
Il server Apache HTTP è uno dei più famosi tra gli open source. È meglio conosciuto come Apache ed è nato nel 1995 e a distanza di tempo è ancora uno dei server più utilizzati. Lo troviamo già installato sui sistemi Linux, ma può tranquillamente far parte anche di Windows o MacOs, dunque installabile su tutti i sistemi operativi. Negli ultimi tempi però, Apache è sotto l’occhio del ciclone poiché pare stia perdendo colpi in termini di aggiornamento e velocità.
NGINX
Nginx è nato nel 2002 ed è il secondo server più conosciuto ed utilizzato al mondo. A differenza di Apache, Nginx gode di un’altissima velocità grazie a un reverse proxy che ha l’obiettivo di rendere il sistema più leggero; inoltre la sua costituzione è formata da un’architettura event-driven asincrona, permettendo di visionare e commissionare più cose contemporaneamente.
APACHE TOMCAT
Apache Tomcat è considerato come Apache versione 2 e viene utilizzato con linguaggio Java. Questo server open source ha l’installazione di Coyote, letto come un normale server web; inoltre come già accennato si occupa di installare ed eseguire applicazioni Java.
NODE.JS
Node.js è un server side per applicazioni di rete, e questo server si basa su un modello di I/O asincrono che opera sugli eventi.
Node.js è studiato e programmato in JavaScript, lavorando particolarmente sulle apllicazioni web; la sua particolare caratteristica è l’asincronicità poiché studia nel dettaglio il tempo, in modo da giungere ai risultati senza trovare intoppi durante il percorso.
LIGHTTPD
Lighttpd è un server adatto in modo particolare alla soluzione di problemi lavorativi, infatti è conosciuto per lo scarso utilizzo della memoria e CPU proprio per sostenere grandi carichi lavorativi. La sua velocità è particolarmente rilevabile e anche se il sistema non è ottimale, Lighttpd è performabile. Inoltre supporta FastCGI, SCGI, Auth, URL rewriting e tante altre funzioni.