Apache: Dal lato server

Cosa succede lato server ?

Supponiamo che il server sia stato configurato correttamente e Apache sia in esecuzione. In breve, esso riceve una URL da Internet, la trasforma in un nome di file e invia l’output al richiedente. Ora è possibile distinguere tre casi:

  • Il server Unix ospita una versione standalone di Apache che resta in ascolto di due o più porte (80 per default). Su uno o più indirizzi IP associati alle interfacce della macchina sulla quale risiede. In questa modalità Apache tiene in esecuzione più copie di se stesso e gestisce più connessioni simultanee.
  • Il server è impostato per utilizzare l’utility Unix ineted, che resta in ascolto di tutte le porte per le quali è configurato. Quando gli giunge una connessione, l’utility determina, in base al proprio file di configurazione /etc/ineted.conf , qual’ è il servizio al quale è diretta la richiesta e avvia automaticamente il programma corrispondente.
  • In ambiente Windows, esiste un singolo processo che sfrutta thread multipli, ognuno dei quali offre il servizio a una singola connessione. Questo limita il numero delle connessioni contemporanee gestibili da Apache.

In tutti i casi il server web gestisce una connessione in arrivo. Prima di tutto determina quale indirizzo IP e quale porta hanno inviato la richiesta, (interpellando il sistema operativo). Poi utilizza l’indirizzo IP, il numero di porta (e l’intestazione host se la richiesta è HTTP 1.1) per decidere quale host virtuale è il destinatario.

A questo punto, l’host virtuale verifica il percorso associato alla richiesta e lo elabora in base alla propria configurazione per decidere la risposta appropriata da inviare.