Corso di HTML - Cap. 1

    

Possiamo definire l'HTML come un "linguaggio" artificiale (con un ottimo livello di standardizzazione mondiale) che permette di generare pagine interattive, essenzialmente destinate ad essere "pubblicate" su un sito Internet.

Requisiti richiesti per questo corso

Si presuppone un livello medio-basso di conoscenza informatica: un minimo di dimestichezza con l'ambiente WINDOWS, saper utilizzare un programma di video scrittura, aprire e chiudere delle cartelle, cancellare, rinominare, copiare dei file, ecc.
In caso di utilizzo del sistema operativo LINUX, si presuppone l'utilizzo di un editor di base, quali vi, emacs, ecc., l'uso di uno tra i numerosi programmi di grafica liberamente distribuiti, ecc.
Data, "purtroppo", la maggiore diffusione di WINDOWS, gli ESEMPI OPERATIVI saranno effettuati su quest'ultimo, mentre resteranno comunque valide, per qualunque altro sistema operativo, le istruzioni HTML.

Introduzione e concetti fondamentali

Non è questa la sede per descrivere gli innumerevoli vantaggi di Internet e delle pagine rese pubbliche grazie a tale tecnologia: i settori interessati spaziano infatti dal commercio alla cultura, dalla didattica all'interscambio e alla cooperazione scientifica, dal semplice svago e divertimento alla divulgazione e all'informazione, ecc. La filosofia di fondo è che noi, dal Ns computer, possiamo collegarci ad un'altra macchina magari presente in Australia, e da quella prelevare dei dati che ci interessano, oppure semplicemente visualizzare delle pagine ivi pubblicate. Il fatto straordinario è che tutto questo è stato reso possibile dall'utilizzo dell'unico mezzo che, più o meno capillarmente, raggiunge ogni angolo del mondo: il telefono.
Naturalmente il Ns computer non è connesso direttamente a quello in Australia, ma ad un elaboratore "centrale" geograficamente "vicino", nella Ns regione o in una confinante. A questo elaboratore centrale detto server, come noi, sono connessi migliaia di utenti, in quella che è una vera rete geografica che gestisce un certo bacino d'utenza. Anche in Australia, dunque, ci saranno una o più reti che fanno riferimento a dei server, ovvero a degli elaboratori che condividono delle risorse con gli utenti di una determinata area geografica.
Di queste reti ne esistono migliaia, in tutto il mondo, e sono intercollegate da particolari dispositivi di "smistamento" detti router.
Ogni utente è collegato ad un server tramite la propria linea telefonica, mentre i server sono connessi alla rete mondiale con collegamenti particolari ad altissima velocità, chiamati dorsali.

Poichè Internet effettivamente connette dei computer attrraverso il collegamento tra diverse reti, può essere più correttamente definita come una rete tra reti.

Oggi saper realizzare delle pagine web è sicuramente facilitato dalla miriade di programmi circolanti. Ma in base alle esperienze di lavoro e didattiche, ritengo che una conoscenza solida, seppur di base, del linguaggio fondamentale compreso dai browser, sia indispensabile.
Il linguaggio d'elezione utilizzato dalle pagine del World Wide Web si chiama HTML, ed è costituito da istruzioni che indicano al browser come disporre testo, figure, suoni, filmati, ecc. su un documento elettronico che è, in definitiva, la Ns pagina web. In effetti, più che da istruzioni, potremmo dire che l'HTML è formato da tag, ovvero da "marcatori" che specificano il formato con il quale gli oggetti (testo, immagini, ecc.) andranno "disposti" e le eventuali azioni sugli stessi.
La pagina così prodotta è definita ipertestuale (HyperText), intendendo con tale termine un testo che consente l'inserimento di "azioni", appunto, quali la comparsa di un messaggio cliccando su una parola, o il "salto" verso altre pagine...
Ma cosa accade quando sul Ns computer visualizziamo una pagina web? Ricordiamo che la pagina potrebbe essere su un CD-ROM o su un dischetto, ma, molto più probabilmente, potrebbe essere memorizzata su un computer a chilometri di distanza, guarda caso in Australia.
Attraverso un insieme di "regole" di comunicazione tra computer, che viene definito protocollo, il nostro computer ha inviato la richiesta di voler visualizzare delle pagine e le stesse ci vengono inviate "spezzettate" sotto forma di tanti "pacchetti" di dati, che, attraverso le linee telefoniche (o, per i più fortunati attraverso un ricevitore satellitare...) raggiungono il nostro PC e vengono poi ricostruiti in modo a noi trasparente.
I protocolli di comunicazione sono la parte più astratta e lontana dall'utente, in Internet. Tuttavia essi ne sono parte essenziale, in quanto consentono la comunicazione e lo scambio dati tra milioni e milioni di utenti.
Il protocollo standard che tutti i computer connessi tramite Internet debbono usare si chiama TCP/IP. Esso è del tipo a commutazione di pacchetti, ovvero consente il trasferimento di dati, come detto, spezzettandoli in più pacchetti, ciascuno dei quali ha, tra le altre cose, un indirizzo di recapito, nel nostro caso l'indirizzo del nostro computer. Il TCP/IP è tuttavia parte di un sistema di trasferimento dati molto più ampio, che comprende 1) l'hardware, ovvero le linee, i cavi, le schede, 2) i driver di rete (programmi che gestiscono le schede), 3) il TCP/IP stesso, ecc. Quando si debbono trasferire dei dati attraverso una rete, occorre definire protocolli specifici a seconda del tipo di dati. Il TCP/IP è infatti a sua volta suddiviso in livelli, e al primo di essi appartengono protocolli specifici quali FTP (per traferire file), SMTP per la posta elettronica, HTTP per il trasferimento di file ipertestuali tra cui le nostre pagine HTML.
Un approfondimento di tali concetti, tuttavia, esula dal presente corso, percui possiamo procedere, finalmente, con la costruzione delle pagine HTML.

Facilitiamo il primo approccio immaginando che dobbiamo dettare telefonicamente un volantino ad un tipografo, che "impersona" un generico browser. Per convenzione il documento, volantino o quantaltro, lo chiameremo pagina HTML.
Il nostro interlocutore, inoltre, non ha tempo da perdere, quindi esige un insieme di regole che permettano di NON perderci in chiacchiere, ma di comunicare in modo veloce ed essenziale: 1) il testo da pubblicare e 2) COME lo vogliamo stampato.

Vediamo in "italiano" come potrebbe essere costituito un ipotetico documento HTML:
<questa è una pagina HTML>
ciao a tutti
<fine pagina HTML>
Il tipografo, dall'altro capo del telefono, riceve la frase "questa è una pagina HTML", e capisce che deve interpretare tutto quanto seguirà, ma non scrive niente sul volantino. Poi riceve la frase ciao a tutti e la copia sul volantino, con un carattere generico standard, visto che non gli abbiamo detto diversamente. Infine riceve "fine pagina HTML", quindi chiude il ricevitore e va a stampare il volantino.
In ambiente web, se attraverso il collegamento di rete arrivassero ad un browser le righe precedenti in formato testo, cioè esattamente come noi le vediamo, il browser visualizzerebbe la scritta
             ciao a tutti
su una pagina vuota bianca.
NON visualizzerebbe le scritte contenute tra <...> in quanto le stesse sarebbero interpretate come istruzioni e non come contenuto. Cerchiamo di capire meglio con un ulteriore esempio, mettendoci per un attimo nei panni del tipografo:

<questa è una pagina HTML>
ciao a <scrivi in grassetto>tutti<fine scrittura in grassetto>, come va?
<fine pagina HTML>

il risultato prodotto sarebbe
             ciao a tutti, come va?

In modo un pò semplicistico potremmo dire che una "pagina 'HTML" è un insieme di 1) dati da visualizzare e di 2) istruzioni, comandi, marcatori o più correttamente TAG, che dicono "come" tali dati debbono essere visualizzati.
Quando scriviamo le istruzioni in un tag possiamo utilizzare indifferentemente lettere maiuscole e/o minuscole.

Le "istruzioni", o TAG, sono espresse tra i due caratteri < > e, in genere, devono essere "chiuse" da un analogo "contrordine". Nell'esempio visto una istruzione dice al browser di iniziare a scrivere il testo in neretto, un'altra dice che è terminata la scrittura in neretto.
Ovviamente il browser interpreta le regole e a noi fa vedere solo i dati.
Per semplificare potremmo decidere che, dato un tag, il relativo tag di chiusura è come il primo, ma preceduto dal carattere / (slash).
Per semplificare ulteriormente, inoltre, il TAG di chiusura necessita solo della prima parola presente in quello di apertura: <a voi un tag di apertura>qui scriviamo</a>. Questa convenzione ci evita di dover riscrivere in chiusura, un tag particolarmente lungo!

L'esempio precedente (ciao a tutti, come va?) diverrebbe dunque:
<pagina HTML>
ciao a <grassetto: inizia a scrivere con questo stile>tutti</grassetto>, come va?
</pagina>

Se un TAG NON ha lo slash, si potrebbe leggere implicitamente come "inizio di....". Ad esempio <pagina html> si potrebbe leggere come inizio di una pagina html, <grassetto> come inizio della scrittura in grassetto, ecc..
Lo slash / andrebbe letto come "fine di...." e implica la cessazione del comando relativo.Ad esempio </pagina html> diventerebbe "fine della pagina html", </grassetto> fine della scrittura in grassetto, ecc.

Arricchiamo l'esempio:

<pagina HTML>
ciao a <grassetto: inizia a scrivere con questo stile>tutti</grassetto>, come va?<accapo>
Scriviamo anche <corsivo: inizia a scrivere con questo stile>in corsivo</corsivo>.
</pagina>

e vediamo il risultato:

             ciao a tutti, come va?
             Scriviamo anche in corsivo.

Notiamo che per andare correttamente accapo, abbiamo dovuto inserire un "ordine" apposito, ovvero un TAG: <accapo>, che non ha bisogno di un analogo TAG di chiusura. La sua azione inizia e termina lì, con l'andare accapo, appunto!

Prima o poi, però, dovremo abbandonare l'esempio con il Ns amico tipografo e prepararci a comunicare con un freddo browser, quindi con un programma che gira su un qualsiasi elaboratore, con un qualsiasi sistema operativo, ed in grado di "capire" l'HTML.
A questo punto incontreremmo una sconcertante verità: l'HTML, come i linguaggi artificiali di programmazione, è essenzialmente scritto in inglese, quindi dovremo imparare almeno alcune fondamentali parole, ovvero le loro iniziali.

  • Il TAG che indica l'inizio e fine di una pagina web è, più brevemente, <HTML>.
  • Il corsivo viene indicato come italic, e si prenderà in considerazione, per brevità, solo la prima lettera, i: ecco perché si indicherà al browser di scrivere in corsivo con l'istruzione <i> e NON con un italianizzato <scrivi in corsivo> che, seppur a noi più comprensibile, non esiste...
  • Il grassetto, o neretto, in inglese è bold, inoltre si prende per brevità la prima lettera, b, ed il tag diventa <b>, con il corrispondente di chiusura che diventa </b>.
  • L'accapo, ovvero l'interruzione (break) di una linea, diventa <br>.

    Gli esempi italianizzati che abbiamo visto, a questo punto, lasciano il posto ai veri comandi HTML, che sarebbero correttamente interpretati da qualunque browser:
    <HTML>
    ciao a <B>tutti</B>, come va?
    </HTML>

    Il risultato sullo schermo sarebbe effettivamente: ciao a tutti, come va?

    L'esempio più completo che abbiamo visto, dove c'è un accapo e il corsivo, diventa, in una corretta forma HTML:

    <HTML>
    ciao a <B>tutti</B>, come va?<br>
    Scriviamo anche <I>in corsivo</I>.
    </HTML>

                 ciao a tutti, come va?
                 Scriviamo anche in corsivo.

    questo codice HTML equivale ai successivi (riportati per farVi capire che al browser NON importa come noi impaginiamo il documento: lui interpreta SOLO i TAG).
    <HTML>
    ciao a <B>tutti</B>, come va?<br> Scriviamo anche <I>in corsivo</I>.
    </HTML>

    oppure
    <HTML>ciao a <B>tutti</B>, come va?<br> Scriviamo anche <I>in corsivo</I>.</HTML>

    Nel linguaggio HTML è possibile inserire dei comandi all'interno di altri comandi. Se ci pensiamo bene, tutti i comandi di formattazione sinora visti <b>, <br>, ecc., sono scritti all'interno dei due tag di apertura e chiusura <HTML>.... </HTML>.
    Ma lo scopo che vogliamo raggiungere è quello di scrivere una parola, ad esempio, non solo in grassetto, ma anche in corsivo. A tale scopo non è stato necessario creare un tag tipo <grassetto+corsivo>, ovvero <bi>, ma è si è consentito semplicemente di utilizzare i due comandi già esistenti uno dentro l'altro, ovvero nidificati, come si dice in... gergo.
    Vediamo un esempio:

    ciao a <B><I>tutti</I></B>, mi auguro che questo <I><B>esempio sia</B></I> chiaro

    produrrà un output di questo tipo:   ciao a tutti, mi auguro che questo esempio sia chiaro
    Notiamo come non sia importante quale tag utilizziamo per primo: quello che conta è che si adotti la logica del "primo ad essere aperto, ultimo ad essere chiuso" (in gergo FILO: First In Last Out).

    inizio pagina


  • Appunti dalle lezioni - autore Marcello Pizzi - all rights reserved - e' vietata la copia, duplicazione e stampa del contenuto delle presenti lezioni senza il consenso dell'autore