Tra i documenti del Web esiste una importante suddivisione: ci sono pagine «statiche», di cui ci siamo occupati fino a questo momento, e pagine «dinamiche» che ci accingiamo a esaminare nel presente capitolo.
La spiegazione del significato dei due termini è molto importante anche perché permette di chiarire che le pagine dinamiche non sono assolutamente quelle che contengono oggetti in movimento (come ad esempio immagini gif animate) ma sono qualcosa di molto più sofisticato.
Un documento è statico quando viene definito una volta per tutte e messo a disposizione degli utenti in una forma che non concede loro la possibilità di alterazioni; il contenuto e l'aspetto della pagina possono essere variati solo dalle persone responsabili del sito di cui essa fa parte.
Un documento è invece dinamico quando viene creato, tutto o in parte, in seguito ad operazioni interattive svolte dall'utente.
Un esempio classico è quello di una persona che richiede sul sito Internet di una azienda informazioni su un prodotto da essa commercializzato inserendo i parametri di ricerca in una pagina definita a tale scopo; i dati vengono inviati al servente Web dell'azienda che interroga la base di dati dei prodotti e costruisce «al volo»la pagina HTML di risposta da inviare al browser dell'utente.
La tecnologia che per prima ha permesso la realizzazione di documenti Web dinamici è stata la CGI (Common Gateway Interface); si tratta di un protocollo standard che descrive come un servente Web possa invocare programmi esterni per elaborare dati ricevuti dall'utente ed inseriti in appositi moduli definiti in pagine HTML.
Ulteriori possibilità di creazione di pagine Web dinamiche sono offerte dalle «applet» Java, dagli «script attivi» scritti con linguaggi di scripting come JavaScript, dal linguaggio PHP.
Vediamo una prima classificazione di questi strumenti in base alle loro caratteristiche:
una applicazione CGI può essere scritta con uno qualsiasi dei linguaggi di programmazione esistenti, anche quelli più «tradizionali» come c o Fortran; è «lato servente» (server-side) in quanto viene eseguita sulla macchina in cui risiede il servente Web ed è «esterna», cioè fisicamente scritta in un file separato da quello contenente il codice della pagina HTML;
le applet e gli script attivi sono «lato cliente» (client-side) cioè eseguiti sulla macchina in cui è in esecuzione il programma di navigazione; le prime sono esterne i secondi invece sono «incorporati» (embedded) in quanto il loro codice è scritto all'interno dello stesso file che contiene il sorgente HTML;
Anche il linguaggio HTML mette a disposizione degli strumenti utili alla definizione di documenti dinamici: i form o moduli, grazie ai quali possono essere raccolti i dati immessi dagli utenti.
Iniziamo l'esame delle pagine interattive proprio dai moduli illustrandone l'uso in associazione ai programmi o agli script CGI.
Gli argomenti successivi sono: l'interfacciamento alle basi di dati con PHP, gli script attivi, le applet, alcuni cenni al dynamic HTML, alle servlet Java e al Web ad oggetti.
Non vengono invece prese in considerazione soluzioni proprietarie come le pagine ASP (Active Server Page).