La maggior parte dei server Web si affida a un meccanismo standardizzato per eseguire contenuto dinamico. Questo meccanismo è la Common Gateway Interface, o CGI. Non è magia. È una struttura di cartelle e un insieme di regole che dicono a un server di smettere di trattare il codice come testo statico e di iniziare a trattarlo come un programma eseguibile.
La chiave è una sottodirectory specifica denominata cgi-bin. Quando configuri un server web, crei questa cartella nella radice del documento. Il server è configurato per monitorare attentamente quella directory. Qualsiasi file richiesto da cgi-bin innesca un comportamento diverso rispetto a una pagina HTML standard.
Invece di leggere il file e inviare i suoi contenuti grezzi al tuo browser, il server esegue il file. L’output generato da tale esecuzione è ciò che viene effettivamente consegnato al client. Ciò consente al server di eseguire il codice al volo, generando risposte basate sull’input dell’utente, sulle query del database o su altra logica dinamica.
I programmi memorizzati in questa directory sono tipicamente binari compilati, come quelli prodotti da un compilatore C, o script interpretati. Una lingua domina questo spazio: PERL. È stata la spina dorsale dello scripting CGI per decenni perché gestisce l’elaborazione del testo e l’interazione con il server con notevole facilità.
Consideriamo un esempio concreto. Digiti questo URL nel tuo browser: https://www.howstuffworks.com/cgi-bin/search.pl.
Il server vede il percorso. Riconosce che search.pl si trova all’interno della cartella cgi-bin. Non ti invia il codice sorgente. Funziona search.pl. Lo script PERL elabora la richiesta, magari interrogando un indice di ricerca, e restituisce il risultato HTML. Il tuo browser visualizza questo risultato. Il codice sorgente non tocca mai il tuo schermo.
Vuoi provarlo tu stesso? È possibile, ma sono necessarie due cose.
Innanzitutto, devi conoscere un linguaggio di programmazione adatto alla CGI. C e PERL sono gli standard tradizionali. È necessario comprendere come generare intestazioni HTTP e gestire gli input del server.
In secondo luogo, è necessario accedere a un server Web che supporti l’esecuzione CGI. Se utilizzi un servizio di web hosting a pagamento, probabilmente disponi già di questa funzionalità. La maggior parte dei piani di hosting condiviso includono il supporto CGI per impostazione predefinita. Controlla la documentazione del tuo provider di hosting per confermare. Potrebbe essere necessario caricare i tuoi script specificatamente nella directory cgi-bin.
Se non disponi di un account di hosting, puoi installare un server web sul tuo computer di casa. Questo ti dà il controllo totale. Puoi sperimentare diverse configurazioni ed eseguire il debug degli errori in tempo reale. È più complicato che utilizzare un servizio ospitato. Devi gestire tu stesso il software del server, la sicurezza e le autorizzazioni. Ma la curva di apprendimento è ripida in modo utile. Capirai esattamente come funziona il web dietro le quinte.
Questa configurazione funziona perché al server viene esplicitamente detto di fidarsi ed eseguire il codice in quella cartella specifica. Al di fuori di cgi-bin, il server tratta i file come dati statici. All’interno ci sono programmi. Questa distinzione è ciò che rende possibili le applicazioni web dinamiche.
Il server esegue il programma e invia l’output al browser. Il codice sorgente rimane nascosto.
È il modo più moderno per creare applicazioni web? No. I framework moderni utilizzano spesso architetture diverse. Ma la CGI ha stabilito lo schema. Ha dimostrato che i server potevano eseguire programmi esterni per generare contenuti. Ogni sito dinamico che visiti oggi fa risalire la sua origine a questa semplice struttura di directory.
Il confine tra contenuto statico e dinamico è definito dalla configurazione del server. IL **




































