Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Apache web server, un'introduzione

Introduzione ad Apache, uno dei principali e più diffusi web server HTTP attualmente in uso: un po' di storia e alcuni principi di base.
Introduzione ad Apache, uno dei principali e più diffusi web server HTTP attualmente in uso: un po' di storia e alcuni principi di base.
Link copiato negli appunti

Apache httpd server – d’ora in poi, per brevità, semplicemente Apache - è il primo e il più importante tra i progetti posti sotto l’egida dell’omonima Apache Software Foundation, una delle più grandi comunità distribuite di sviluppatori che lavorano su progetti open source.

Brian Behlendorf, uno dei creatori di Apache, ha dichiarato durante un’intervista nel 2000 che il nome deriva non tanto dalla volontà di omaggiare l’omonima tribù di indiani d’America, ma da un gioco di parole sulle origini del software, nato nel 1994 come set di patch per il server NCSA HTTPd. Dalla contrazione dell’espressione “a patchy (server)” (un server pieno di patch) avrebbe avuto origine il nome Apache. In pochi anni, Apache sostituì HTTPd come server web più usato al mondo, ed ha mantenuto questa posizione sino ad oggi.

La versione 2.0, rilasciata nel 2002, rappresentò una riscrittura significativa del software, che divenne più facilmente portabile ed estendibile. Attualmente, il ramo stabile ha numerazione 2.4.x: il primo rilascio è avvenuto nel 2012, e si caratterizza per la disponibilità di un gran numero di nuovi moduli ed un miglior supporto alle richieste asincrone, sempre più diffuse nelle più moderne applicazioni web.

Cos’è un server web?

Un server web è un sistema informatico che si occupa di rispondere a richieste di risorse, dette pagine, usando il protocollo HTTP (acronimo che sta per HyperText Transfer Protocol).

Le pagine servite sono spesso – ma non sempre – documentiHTML (HyperText Markup Language), che possono includere riferimenti a immagini, fogli di stile e script, oltre che testo. In questo caso, il client HTTP (ad esempio il browser web) richiederà prima la pagina HTML e, dopo averla esaminata, contatterà nuovamente il server per ottenere le risorse esterne per le quali ha trovato i riferimenti URL. Il client, se presente, completerà progressivamente la resa della pagina man mano che tali risorse vengono rese disponibili.

Naturalmente, un server web può essere utilizzato anche per mettere a disposizione anche altre tipologie di file, come archivi compressi ed eseguibili, se il client è in grado di gestirne opportunamente la risposta.

Apache supporta anche il cosiddetto server-side scripting: ciò permette di generare dinamicamente i documenti da servire. Tra i linguaggi di scripting supportati il più popolare è, probabilmente, PHP, per i quali Apache offre diverse modalità di parsing, che esamineremo nelle prossime lezioni.

I processi di Apache

La risposta alla richieste dei client viene gestita mediante thread autonomi dal server httpd, identificato con httpd. In Apache 2.4.x è possibile scegliere diverse politiche in funzione del sistema operativo e/o delle esigenze del sito, usando il Multi-Processing Module che più si preferisce: su sistemi UNIX-like moderni, come le ultime versioni di GNU/Linux, viene consigliato, quando non usato per default, il modulo event, che permette la delega di alcuni compiti a un pool di thread già esistenti, mentre quelli appena creati possono gestire le richieste appena arrivate. Il modulo worker, più simile nel funzionamento alle precedenti versioni di Apache, è comunque fornito per compatibilità, ad esempio, con vecchi script.

Su Windows, il modulo winnt permette di usare codice specifico per l’API Win32 mantenendolo separato dal resto del codice di Apache.

Ti consigliamo anche