In che modo i server Web mappano gli URL sui file ed eseguono script dinamici

4

Molte persone pensano a un server web come a una magica scatola nera che evoca pagine dal nulla. Non lo è. Nella sua essenza, il lavoro è sorprendentemente banale. Un server web recupera un file da un disco e lo inserisce nel cavo del tuo browser. Questo è tutto. Semplice. Diretto.

Tracciamo cosa succede quando digiti un URL nella barra degli indirizzi. Immagina di inserire “http://www.bygpub.com/books/tg2rw/author.htm”. Il server riceve una richiesta per il percorso specifico /books/tg2rw/author.htm. Se potessi sbirciare all’interno della configurazione del server, vedresti una directory root definita durante l’installazione, qualcosa come “c:\My Documents\www”. Il server non cerca /books/tg2rw/author.htm sull’intero disco rigido. Cerca quel percorso relativo alla radice. Quindi combina i due: c:\My Documents\www + /books/tg2rw/author.htm. Trova il file. Lo invia. Fatto.

Ma cosa succede quando l’URL termina con una barra? Ti piace “http://www.bygpub.com/books/tg2rw/”?

Il server la interpreta come una richiesta di directory, non come una richiesta di file. Ha bisogno di un file predefinito da servire. Non indovina a caso. Segue una rigida gerarchia. Cerca “index.html”. Se manca, prova con index.htm. Se fallisce, controlla “default.html”. Infine, prova default.htm. L’elenco esatto dipende dal software del server, ma la logica è coerente. Il server converte silenziosamente l’URL della directory in un URL del file, aggiungendo la prima corrispondenza che trova. In questo modo la richiesta di directory diventa “http://www.bygpub.com/books/tg2rw/index.htm”. Non vedi mai il cambiamento del nome del file. Vedi solo il caricamento della pagina. Ogni altro file in quella directory richiede di nominarlo esplicitamente. Questa è la base per la gestione dei file statici.

Oltre i file statici: il ruolo della CGI

I file statici sono solo metà della storia. La maggior parte dei server Web moderni gestisce anche file dinamici. Non generano queste pagine al volo da zero; trasferiscono la richiesta a un programma esterno. Questo meccanismo è chiamato Common Gateway Interface o CGI.

Hai usato la CGI innumerevoli volte senza rendertene conto. È il motore dietro qualsiasi pagina web che cambia in base al tuo input. Considera questi esempi:

  • Libri degli ospiti : inserisci un messaggio in un modulo HTML. Il server non si limita a inviare una pagina già scritta. Esegue uno script che aggiunge il tuo testo a un database o file, quindi genera una nuova pagina che mostra la tua voce.

  • Ricerche WHOIS : digiti un nome di dominio in un modulo. La pagina che ottieni dipende interamente dal dominio che hai inserito. Il server non fornisce un file statico; sta chiedendo a un programma di recuperare dati in tempo reale.

  • Motori di ricerca : inserisci le parole chiave. Il server esegue una query, esegue la scansione degli indici e crea dinamicamente una pagina di risultati su misura per la tua ricerca.

Tutte queste interazioni si basano sulla CGI. Il server web funge da dispatcher, trasmettendo i dati del modulo dell’utente a un programma, quindi inviando l’output del programma al browser. Questa separazione consente ai server di gestire logiche complesse senza impantanarsi nel