Con ipertesto si intende un nuovo modo di rappresentare le informazioni: se inizialmente le informazioni erano raccolte in lunghi testi (essenzialmente stringhe lineari), il concetto di ipertesto permette di creare una fitta rete di connessioni in cui tutto è connesso mediante collegamenti diretti.
Spesso durante una conversazione abbiamo usato parole come internet, WWW e simili. Ma cosa significano realmente? Vediamolo:
internet è l'infrastruttura, la rete di collegamenti, basa la sua efficacia sui protocolli di comunicazione (es: TCP/IP, HTTP, HTTPS);
WWW è il software che permette la gestione dell’infrastruttura (gestione nodi [1] nei server e affini), si occupa prettamente dei percorsi per giungere ad un certo nodo;
I primi siti erano pagine con contenuti statici (contenuti caricati su un server e visualizzabili mediante richiesta al server che controlla se esiste la risorsa ed eventualmente la presenta come testo, immagine, audio, altro).
Un ulteriore passo avanti per l’informatica è stato quindi l’introduzione dei contenuti dinamici. Parliamo di contenuti dinamici quando interagendo con la pagina, viene elaborato un segnale in input e viene presentato un output (ad esempio una tabella con dati a cui possono essere imposti filtri di ricerca).
Ma come avviene questo passaggio? Semplice, con il protocollo TCP/IP:
Il protocollo TCP/IP (Trasmission Control Protocol / Internet Protocol) è basato su una struttura a più livelli:
applicazione (qua avvengono le interazioni con le informazioni presenti sul web mediante programmi specifici per lavorare su questo protocollo);
elaborazione (i dati prodotti vengono elaborati);
conversione per trasmissione (prima di essere inviati, i dati vanno trasformati in un formato accettabile, è bene effettuare controlli relativi a ridondanza [2] e corruzione file).
Una grande rivoluzione per il mondo dell’informatica è stata certamente l’avvento della multimedialità e dell’ipermedialità.
Definiamo multimedialità l’utilizzo, in contemporanea e in maniera integrata, di diverse tipologie di file (audio, video, testi scritti, disegni, fotografie, audiovideo). Diciamo quindi che la multimedialità permette l’espressione di una informazione mediante una cooperazione in sinergia di più canali comunicativi. Per fare ciò, tutti i file vengono digitalizzati (ovvero trasformate in una sequenza di 0 e 1 [5]). Unendo multimedialità e ipertesti otteniamo gli ipermedia: raccolte di risorse (video, sonore, audiovisive) organizzate secondo la struttura non sequenziale tipica degli ipertesti.
Per formattare un testo ci sono due strade:
usare i sistemi di word processing;
usare i linguaggi di markup, che a loro volta si distinguono in due categorie: la differenza principale tra i linguaggi di markup è il processo con cui viene indicata la formattazione del testo.
I linguaggi di tipo procedurale lavorano scrivendo il testo e le istruzioni per visualizzare la formattazione finale del testo. I linguaggi di tipo descrittivo descrivono la formattazione (la “forma finale”) lasciando al software di lettura l’interpretazione per raggiungere alla rappresentazione.
I linguaggi di tipo descrittivo sono i migliori per due ragioni:
permettono di effettuare una separazione tra struttura e contenuti (fondamentale quando si lavora con gli ipertesti);
consentono di focalizzarsi sui problemi di visualizzazione e struttura.
Un esempio di linguaggio procedurale è il TeX, di cui è stata prodotta una versione ad alto livello (LaTeX) usata per l'elaborazione tipografica a livello professionale. Invece che vedere “in diretta” come il documento diventerà, viene inserito un paragrafo e a lato la rispettiva sintassi con i comandi per indicare al compilatore la formattazione desiderata (carattere, interlinea, font, ecc.). Le immagini vengono collocate specificando le “coordinate” e le dimensioni. L’utilizzo di questo editor è più complessa ma permette di ottenere risultati più affidabili rispetto ad un documento, prodotto ad esempio con Word, in quanto questo può essere visualizzato in maniera leggermente differente da macchina a macchina.
Appartengono a questa categoria i programmi come Word (di cui abbiamo parlato qua!), ovvero tutti quei programmi per videoscrittura in cui ciò che viene visualizzato a monitor durante la scrittura coincide con quello che verrebbe riprodotto su carta in caso di stampa.
Come abbiamo già visto, utilizziamo i linguaggi di programmazione per spiegare al computer cosa deve fare, per “parlare” con il mondo di internet invece? Per prima cosa dobbiamo fare una distinzione tra client e server.
Il client è rappresentato dal software (il browser) che permette la navigazione nell’ipertesto. Il server è un processo in esecuzione (solitamente perpetua) su un computer remoto.
LATO SERVER sono presenti due macrofamiglie:
famiglia Windows (WISA - Windows, IIS, Sql server, ASP);
famiglia LINUX (LAMP - Linux, Apache, MySQL, Php [4]).
LATO CLIENT, ovvero a livello di browser i linguaggi più utilizzati sono:
l’HTML è il linguaggio usato per la struttura e l’organizzazione dei contenuti;
i fogli di stile a cascata (Cascading Style Sheet) sono usati per formattare i contenuti e gli stili (anche in HTML c'è una parte in cui è possibile formattare i contenuti ma il suo utilizzo è deprecabile);
gli Script (i più comuni sono i JavaScript) sono utilizzati per lavorare al comportamento lato client.
Un server è una macchina in continua esecuzione con demoni che vanno ad ascoltare (ad esempio con il polling [6] o la programmazione ad eventi). Il server è la struttura che permette il discorso.
Nei server dinamici si producono le pagine personalizzate in base alla richieste fatte dal client, che verranno poi inviate al client:
MySQL si basa sul linguaggio SQL (per interrogare le tabelle dei database relazionali);
Apache è il server che permette di far girare i linguaggi;
Si tratta di un programma per l'interfaccia tra codice della pagina e l’utente. I browser possono tradurre in modo leggermente diverso una stessa pagina, per questo per poter lavorare sul codice direttamente conviene avere accortezze affinché tutti i browser possano tradurre allo stesso modo una stessa pagina. La cosa fondamentale è che il browser sappia leggere e tradurre il linguaggio utilizzato.
Noi interagiamo con i cosiddetti URL (Uniform Resource Locator): un collegamento/riferimento ad una specifica risorsa web. Gli URL sono delle sovrastruttura degli indirizzi IP che permettono di facilitare il raggiungimento di un nodo. per passare da URL a IP usiamo i DNS (Domain Name System).
Ad ogni nodo della rete è attribuito un indirizzo ip, risolvibile [3] mediante le tavole dei DNS.
Si tratta dell'indirizzo del router per andare all'esterno della rete su cui si sta lavorando: quando ci colleghiamo ad una rete (lan) abbiamo bisogno di un indirizzo per ogni macchina, il gateway è l'indirizzo che fa da ponte con l'esterno. Ogni dispositivo può avere un indirizzo statico o dinamico. Generalmente ad ogni macchina viene attribuito un indirizzo grazie al servizio DHCP. Quando invece si lavora su un gran numero di macchine, conviene lavorare con indirizzi IP statici per evitare conflitti sull’attribuzione.
Si tratta di un parametro che indica la grandezza della sottorete di indirizzi IP, si esprime in intervalli di indirizzi IP.
Si tratta dell’indirizzo IP automaticamente assegnato.
Il W3C (consorzio del www) si occupa della gestione degli standard di riferimento. Se voglio realizzare dei contenuti ma non ho delle buone pratiche (regole seguite dalla maggioranza) insorgono rischi su compatibilità e lettura universale. Esistono standard di riferimento sia per HTML sia per i CSS (e anche per gli script).
Quando si costruisce un sito web, si avranno delle cartelle con i file, le pagine, ecc. Per caricare tutti questi file sul server si utilizzano i Client FTP: si tratta di un applicativo che si collega al server (e se ha le autorizzazioni) permettendo di aggiungere i contenuti. In questi casi è importante mantenere i percorsi relativi.
Nella realtà di tutti i giorni, se non si è una grande azienda, non conviene comprare la macchina o parte della macchina. Spesso è più pratico affidarsi ad una società di noleggio (come ad esempio Aruba).
[1] Con "nodi" si intende una pagina web.
[2] Con ridondanza si intende uno sdoppiamento delle informazioni, con possibili origini.
[3] Risolvere un DSN significa ottenere l'indirizzo URL partendo dell'originale indirizzo IP del nodo.
[4] Linux è il sistema operativo, Apache è il server web, MySQL è un linguaggio per database relazionali basato su SQL (open source), Php è un linguaggio per la gestione dei contenuti lato server
[5] In inglese "cifra" si dice "digit", da qui deriva il termine digitale e tutti i derivati.
[6] Polling - la verifica ciclica di tutte le unità o periferiche di input/output da parte del sistema operativo tramite test dei bit di bus associati ad ogni periferica, seguita da un'eventuale interazione.
Nel dettaglio vediamo ora i linguaggi: