1. Introduzione APACHE

 

Apache è un server HTTP freeware (completo di sorgenti C), sviluppato da un certo numero di programmatori. La prima versione, basata su server NCSA, è stata sviluppata nel 1995. Poiché era un insieme di patches sul server NCSA è stato chiamato un patchy server, da cui il nome Apache Server.

 Le funzionalità e le prestazioni offerte dal server Apache non hanno nulla da invidiare a quelle di numerosi server "commerciali", tanto che Apache risulta essere il software web server più usato su internet (nel novembre 1999 deteneva il 52% della quota di mercato a livello mondiale, risultando primo per adozione anche in Italia).

Grazie a questa linea di pensiero, il progetto Apache e riuscito ad ottenere un gran numero consensi e simpatie da parte di molti programmatori sparsi per il mondo, evolvendosi e migliorando le sue prestazioni a ritmi sfrenati.

Oggi il WebServer Apache è considerato il server web più popolare ed affidabile al mondo per le sue caratteristiche sofisticate, le eccellenti performance, sia perché è gratuitamente reperibile, sia perché la sua estraneità da strategie di mercato, fanno sì che le varie correzioni e patch siano immediatamente disponibili appena corretti, garantendo in questo modo affidabilità e robustezza. Circa il 60% dei server web al mondo sono server Apache.

In un certo senso, lo sviluppo di Apache è stato simile allo sviluppo di Linux. Il nucleo principale dei programmatori di Apache è composto di circa 20 persone, l’Apache Group.

Sicuramente vi chiederete per quale motivo tante persone si affianchino con rigoroso impegno a tale linea di pensiero, e cosa li spinga a regalare a chicchessia il frutto di numerosissime notti insonni. Nella maggior parte dei casi, tali figure svolgono un lavoro di sicura retribuzione in aziende del settore, ma non soddisfatti del solo denaro, sono lieti di condividere le proprie idee, passioni e potenzialità, con altra gente sparsa per il globo, accomunata nell'intento di migliorarsi e spingersi al limite delle loro capacità a favore del progresso informatico. Inoltre, la partecipazione ad un progetto come quello di Apache, da a loro un maggiore prestigio e una carta in più nella ricerca, se non addirittura nell'offerta di impieghi più redditizi.

Giunto alla versione 2.0, Apache gira sia su sistemi Unix (compreso Linux) che su Windows NT/9x/Me.

Oltre alle normali funzionalità di un server web, Apache mette a disposizione una serie di strumenti aggiuntivi, quali sistemi di controllo d'accesso a più livelli, generazione di statistiche variamente strutturate, possibilità di "integrare" l'HTML in modo dinamico (Server-Side Include). Di più, la sua caratteristica struttura modulare e la disponibilità di vere e proprie librerie di funzioni richiamabili da altri programmi (Apache API) permettono di integrare Apache con applicativi ausiliari di vario genere (alcuni dei quali sono "di serie", esempio il Proxy server): uno dei più interessanti è PHP, un linguaggio di programmazione (anch'esso fornito gratuitamente tramite il sito web php.iquest.net) che permette, tra l'altro, di integrare facilmente HTML ed SQL, il linguaggio per l'interrogazione di sistemi database quali Oracle.

 

L'elevata efficienza di questo web server permette di ottenere buone prestazioni anche da macchine meno recenti: anche un 486 può essere "riciclato" come web server, senza contare che la disponibilità dei sorgenti C permette di adattare alle proprie esigenze le funzionalità del server.

Per contro, installare e configurare Apache non è un compito semplice, specie se si intende sfruttarne appieno le funzionalità: Apache infatti non prevede, al momento, nè strumenti di installazione automatizzati, nè un sistema interattivo per la gestione delle sue funzionalità; tutto deve avvenire tramite la modifica manuale di opportuni file di configurazione in formato testo. Peraltro, per attivare determinate funzionalità (ad esempio, il supporto PHP) è necessario ricompilare Apache partendo dai sorgenti C: piuttosto scomodo ed assai lontano, ad esempio, dalla "filosofia Plug and Play" che caratterizza l'ambiente Windows.

Tuttavia Apache si è meritato nel corso del tempo, la fiducia di gran parte dei Web Server Administrators soprattutto grazie ad avanzate funzioni che permettono di rendere sicuro ed efficiente il commercio elettronico.

Assieme ad un supporto praticamente nativo per SSL che garantisce sicurezza al transito dei dati “sensibili”, infatti, troviamo implementate le seguenti funzionalità legate proprio all’ e-commerce:

-          Content Negotiation: è un algoritmo per la scelta del file più appropriato da restituire ad una richiesta del navigatore e tiene conto della configurazione e delle capacità del browser remoto. Esempio: Il browser accetta imagini jpg, gif, png, animazioni flash. Il server, per quella richiesta, ha a disposizione immagini gif-animato, jpg, animazioni director. Se il web-designer ha fatto bene i calcoli, il browser dovrebbe restituire un gif-animato.

-          Language Negotiation: implementata prima del content negotiation, questa funzionalità permette di selezionare la lingua del documento in base alla configurazione del browser-utente. Sta alla flessibilità di chi sviluppa il sito fare in modo che il sistema di negoziazione non risulti troppo rigido.

-          Aliasing & Redirect: Apache permette di dare dei nomi mnemonici alle proprie risorse in modo da essere facilmente raggiungibili e implementa anche delle redirezioni multiple tramite la riscrittura dell'url. Esempio: possiamo sostituire "/~user" con "/u/user" e permettere di ignorare la presenza dell'ultimo slash in /u/user.

-          Virtual Host Support & Directory Name Interpolation: utile per gli ISP per ospitare siti diversi sullo stesso server, ma fornisce anche un sistema più rapido per la gestione di "sezioni" di un sito e-Commerce.

-          Cookies: variabili impostate dal server sul client per gestire il customer-tracking o la gestione di una "sessione".

-          Message passing (GET, POST), Cookies: Consente all'utente di eseguire una serie di operazioni collegate l'una all'altra: prenotazioni e pagamenti online, accesso ad account, dischi e database remoti (per consultare la propria mailbox, per controllare il proprio carrello della spesa, il proprio conto telefonico, per approfondire una ricerca in un motore). Vengono utilizzati i metodi GET (sessionID visibile nell'url) e POST (campi nascosti nel form), ma soprattutto i Cookies (righe di testo nel proprio hard disk modificabili dal server e cancellabili dal browser).