Il Web Server Apache fu sviluppata nel 1995 dalla Apache Software Foundation e nel giro di un anno divenne la piattaforma più usata, superando il server NCSA da cui era derivato. Apache è tra le piattaforme server web modulari più diffuse in quanto riesce a lavorare su diversi sistemi operativi, quali Microsoft Windows, UNIX/Linux e OpenVMS, ma è necessario essere amministratori del sistema per poterlo installare. Fondamentalmente la sua funzione è quella di trasportare un flusso notevole di informazioni pur mantenendo il vantaggio di offrire controllo e sicurezza. Il successo del Web Server Apache è indice di qualità e affidabilità, delle indagini di mercato hanno stabilito che su 75 milioni di siti, 52 milioni utilizzava Apache e solo un anno dopo il numero a raggiunto la cifra di 60 milioni, quasi il 70% del totale.

Come funziona Apache?

Tecnicamente il Web Server Apache sviluppa una struttura composta da un servizio o demone che, a seconda delle impostazioni contenute nel file di configurazione httpd.conf, da la possibilità di accedere a diversi siti, offrendo varie caratteristiche di sicurezza e potendo ospitare diverse estensioni per pagine attive o dinamiche, come PHP o Jakarta/Tomcat. La configurazione del Web Server Apache viene effettuata dall’amministratore del server o modificando il file httpd.conf oppure il file di configurazione .htaccess. Il file httpd.conf è situato nella sub directory conf che si presenta nella directory indicata durante il processo di installazione. In questa fase è possibile aggiungere moduli, estensioni, mime-type ed altro ancora, poiché si tratta della fase di massima libertà che il server offre. Il file .htaccess, invece, consente una ulteriore personalizzazione del webserver a livello di singola directory. Ciò è maggiormente utilizzato nell’hosting condiviso al fine di modificare le impostazioni standard fornite dal server stesso.

Architettura modulare

Una delle caratteristiche del Web Server Apache è l’architettura modulare. Queste fa si che le funzionalità del server sono rese disponibili tramite dei moduli che possono essere aggiunti o sottratti al server stesso. Dunque, ogni modulo svolge funzioni specifiche e indipendenti che ricoprono una singola funzionalità, mentre il controllo è gestito dal core, da cui possono le richieste ai vari moduli in modo sequenziale. Nel core sono incluse solo le funzionalità di base, mentre durante il processo di configurazione è possibile scegliere diversi moduli da aggiungere al server. I moduli gestiscono diverse operazioni quali Translation, che traduce la richiesta del client; Access control,che controlle le richieste secondo i termini di autorizzazione; mime Type, che individua il tipo di contenuto e stabilisce quali sono i moduli che possono servire per soddisfare la richiesta; Response, che invia la risposta al client, attivando le eventuali procedure; Logging, che controlla e traccia tutti i movimenti che sono stati fatti.

Sopra il ciclo di Core vi è un ulteriore ciclo di polling attivato da un demone che interroga costantemente le linee logiche da cui possono pervenire messaggi di richiesta.

La struttura modulare permette, inoltre, l’applicazione di vari applicativi. Tra i maggiori applicativi vi è PHP, che è un linguaggio di programmazione che consente di integrare HTML ed SQL.