Pagine statiche e pagine dinamiche
Il dinamismo, contrariamente a quanto verrebbe da pensare ad un non tecnico, non ha niente a che vedere con eventuali movimenti (animazioni, multimedialità varia) nella pagina.
Per dinamica si intende una pagina il cui contenuto non è prefissato, ma viene (parzialmente o interamente) generato in tempo reale in base alle richieste dell'utente.
L'esempio più chiaro e noto a tutti è quello dei motori di ricerca: ovviamente non sono presenti sul server di Google (a.e.) tutte (miliardi?, migliaia di miliardi?) le pagine associate alle possibili combinazioni di termini che un utente immette nel box di ricerca, ma le pagine vengono create al volo, con links, numeri di pagine interni, pubblicità etc.
Ma facciamo un passo indietro...
Quando digitate nella barra degli indirizzi del browser un indirizzo che finisce per .html (o ci arrivate seguendo un link), quasi sicuramente state vedendo una pagina statica. In sintesi, il webserver che voi chiamate (per sempio 8-p.it) si sta comportando essenzialmente come un hard disk remoto: controlla se la pagina esiste e ve la fornisce così com'è (eventualmente inviando al browser anche eventuali contributi associati alla pagina: immagini, stili, etc.). Se voi salvate il file sul vostro disco fisso, insieme agli eventuali contributi (cosa che praticamente tutti i browser sono in grado di fare), potete ri-caricare la pagina esattamente nello stesso modo.Questo è, storicamente, il sistema originario del web, quando gli utenti erano pochi e poche le informazioni veicolate: Internet serviva come una enorme rete locale, in cui pescare semplicemente i documenti desiderati (con alcuni vantaggi derivanti del sistema di hyperlink).
Una pagina dinamica, invece, ha di solito un'estensione diversa (.php .jsp .cfm .aspx) e spesso anche dei parametri dopo un punto di domanda (tipo ?sezione=3&pagina=5). La pagina ha in genere una parte del contenuto fissa, ma anche una parte scritta in un linguaggio di scripting che non vi viene mandata così com'è, ma viene prima interpretata dal webserver, che fa delle operazioni, da molto semplici a molto complesse, e invia infine la pagina finale al vostro browser.
Di fatto, a questo punto la pagina (quando è sul vostro schermo) è diventata a tutti gli effetti statica (html) e infatti la potete salvare, facendone in un certo senso la fotografia, ma perdendone tutte le caratteristiche dinamiche. Pensate ad esempio ad un sistema di news: se salvate la pagina la potete riaprire, ma l'ultima news sarà sempre la stessa, mentre online la news si aggiorna continuamente.
Il punto importante è che la news online non viene aggiunta modificando il documento sul server e che questo, in realtà, resta sempre invariato.
E allora da dove arriva il contenuto aggiornato? Di solito da un database (un insieme di tabelle che contengono dati, di solito numerici o di testo), anche lui residente sul server, con cui il codice di scripting di cui parlavo sopra colloquia secondo le direttive imposte dal programmatore.
Schematizzando:
Pagine statiche
Browser del client (voi) -> chiede la pagina index.html -> Webserver -> invia il documento -> Browser del client
Pagine dinamiche
Browser del client (voi) -> chiede la pagina index.php?sezione=2 -> Webserver -> riconosce dall'estensione (php) che la pagina è dinamica e quindi processa* il file index.php -> Trasforma il risultato dell'elaborazione in html -> invia il documento -> Browser del client
*Cosa significa "processa"?
Per fare un esempio reale (nel senso che l'ho fatto due giorni fa per un sito): mettiamo che la pagina debba presentare un'immagine a caso nella testata, ma non a caso assolutamente, bensì in base alla sezione del sito in cui ci si trova; il linguaggio di scripting attivato dal webserver legge che la sezione vale 2 -> chiede al database quale cartella sul server corrisponde alla sezione 2, quante immagini ci sono e come si chiamano -> ottenuti i risultati, usa alcune sue funzioni interne per generare un numero casuale compreso fra 1 e il numero totale di immagini in quella cartella -> va a scrivere nella pagina che l'immagine associata è, diciamo, la terza in quella cartella -> manda al webserver (e quindi infine al voi, il client) il risultato (html)
Per chi vuole approfondire un buon punto di partenza è, come sempre, Wikipedia.
Un'ultima nota
Qualcuno chiederà: ma il tuo blog non è dinamico? Non ci sono estensioni dei files o quando ci sono sono .html e nemmeno ci sono parametri! Qui la cosa si fa complicata. Molto brevemente: dal momento che i motori di ricerca indicizzano (leggono e mettono via) meglio le pagine con nomi "umani" di quelle con tanti parametri numerici, la moda degli ultimi tempi è quella di mascherare le URL (gli indirizzi) dinamiche dietro una facciata SEF (Search Engine Friendly). Sorvolo su come questo si possa ottenere, ma sappiate che è un trucco. Questa pagina, per esempio, può essere vista anche nella sua forma pura (a dire il vero già abbastanza SEF), mettendo nella barra degli indirizzi questo link: http://www.8-p.it/index.php?/archivi/19-Pagine-statiche-e-pagine-dinamiche.html