COMUNICAZIONE ONLINE, RETI E VIRTUALITA’ MATTEO CRISTANI AGENDA IL W3C CONSORTIUM CHE COS’E’ XML BASI DEL LINGUAGGIO HTML INTRODUZIONE AD HTML5 IL W3C CONSORTIUM Nell'ottobre del 1994 Tim Berners Lee, padre del Web, fondò al MIT (Massachusetts Institute of Technology), in collaborazione con il CERN (il laboratorio dal quale proveniva), un'associazione di nome World Wide Web Consortium (abbreviato W3C), con lo scopo di migliorare gli esistenti protocolli e linguaggi per il World Wide Web e di aiutare il web a sviluppare tutte le sue potenzialità. Nell'aprile del 1995 l'INRIA (Istituto Nazionale di Ricerca Informatica ed Automatica francese) divenne il primo membro europeo dell'organizzazione. Nel 2003 l'ERCIM (Il Consorzio Europeo di Ricerca in Informatica e Matematica) prese il ruolo di host europeo del W3C dall'INRIA (che è l'istituzione francese dell'ERCIM). GLI STANDARD Gli standard definiti dal W3C HTTP (HyperText Transfer Protocol) URI URL (in collaborazione con IETF) HTML (HyperText Markup Language) XML e i linguaggi da questo derivati: EXI (Efficient XML Interchange) XProc (XML Pipeline Language) XPointer (XML Pointer) STANDARD XML Processing Model XML Schema XML Signature XHTML (eXtensible HyperText Markup Language) MathML (Mathematics Markup Language) SVG (Scalable Vector Graphics) XForms XPath XQuery STANDARD CSS (Fogli di stile a cascata) XSLT (Extensible Stylesheet Language Transformations) CGI (Common Gateway Interface) DOM (Document Object Model) GRDDL (Gleaning Resource Descriptions from Dialects of Languages) OWL (Controllo dei contenuti) RDF (Controllo dei contenuti) SMIL (Synchronized Multimedia Integration Language) SML (Service Modeling Language) STANDARD SOAP(Simple Object Access Protocol) PICS (Platform for Internet Content Selection) WAI (Linee guida per l'accessibilità) DOM (Linee guida per l'interfaccia) PICS (Linee guida per le piattaforme) POWDER (Protocol for Web Description Resources) PNG (formato grafico) InkML (formato per inchiostro digitale) XML XML (sigla di eXtensible Markup Language) è un metalinguaggio di markup, ovvero un linguaggio marcatore che definisce un meccanismo sintattico che consente di estendere o controllare il significato di altri linguaggi marcatori. Costituisce il tentativo di produrre una versione semplificata di SGML che consenta di definire in modo semplice nuovi linguaggi di markup da usare in ambito web. Il nome indica quindi che si tratta di un linguaggio marcatore (markup language) estensibile (eXtensible) in quanto permette di creare tag personalizzati. SPECIFICHE IN XML La specifica di un linguaggio in XML avviene attraverso due approcci Il DTD (Document Type Definition) dove si definiscono i tag in termini di riscrittura ed indicazioni operative ai browser compatibili, in genere identificando le funzioni mediante i fogli di stile Mediante un XML schema, che integra le operazioni di estensione dei tag con funzioni proprie del server, quindi facendo seguire al tagging azioni “libere” dal contesto della navigazione BASI DEL LINGUAGGIO HTML5 HTML è un linguaggio di descrizione di pagine Un documento HTML è un file di testo (file ASCII) contenente dei comandi per Formattazione Inserimento parti multimediali Link ipertestuali I file di testo hanno estensione .html o .htm E’ preferibile .html BASI DEL LINGUAGGIO HTML5 HTML è case insensitive: i tag possono essere scritti in maiuscolo e/o minuscolo E’ preferibile minuscolo HTML è non posizionale: è possibile, ma sconsigliato,scrivere tutto il codice di una pagina su di una sola linea; andare a capo nel file html non significa andare a capo nella pagina; non è possibile utilizzare il carattere spazio per allineare parti di testo Come qualificatori di testo è indifferente utilizzare le apici singole o doppie E’ preferibile usare le doppie apici TAG I comandi (marcatori, tag) hanno una forma sintattica particolare <tag>informazioni</tag> Le informazioni tra <tag> e </tag> devono essere trattate secondo quanto stabilito dal comando stesso I tag hanno nomi mnemonici Esistono degli editor che assistono nella creazione delle pagine I tag possono avere degli attributi <tag attr1=“valore1” attr2=“valore2” … >informazioni</tag> XHTML: tutti i tag hanno sempre una forma di apertura ed una di chiusura qualora un tag non ha forma di chiusura esso va scritto nella forma <tag attr1=“valore” … /> I valori degli attributi vanno scritti sempre fra doppie apici INTESTAZIONE Un documento HTML è costituito da due parti <html> <head> descrizione delle caratteristiche del documento </head> <body> </body> </html> documento vero e proprio head: la parte fondamentale è il titolo del documento che verrà visualizzato come titolo nella finestra del browser poiché il titolo viene usato anche per costruire gli indici automatici usati dai motori di ricerca è importante che esso sia significativo. Esempio <head> <title>Corso di laurea in Lingue per la comunicazione commerciale</title> </head> CORPO DI HTML Corpo: contiene il documento (pagina) vero e proprio documento di testo Il testo può essere inserito liberamente nella parte body e verrà visualizzato secondo le direttive di formattazione. Intestazioni: permettono di indicare quali parti di testo vengono usate come titoli Esempio <h1> titolo1 </h1> ... <h6> titolo6 </h6> Nota: H1, ..., H6 sono usati anche per controllare le dimensioni dei caratteri: H1 corrisponde a caratteri grandi, ..., H6 a caratteri piccoli I tag h* hanno anche valore semantico per i motori di ricerca Andare a capo <br/> a capo <p>…</p> paragrafo ESEMPIO <html> <head> <title>Esempio01: Hello world!</title> </head> <body> Questa è la mia prima pagina web<br/> <p> Giuro solennemente di <b>non dire mai</b> nella mia vita che HTML è un linguaggio di programmazione.<br/> </p> </body> </html> INTRODUZIONE AD HTML5 Gli elementi di HTML5 si dividono in tre categorie Normali Vuoti Provenienti da altri namespaces ELEMENTI VUOTI 2. Elementi vuoti: gli elementi vuoti sono quelli che non possono avere alcun contenuto. Per questi elementi si utilizza un tag ‘vuoto’. Essi sono: area, base, br, col, command, embed, hr, img, input, keygen, link, meta, param, source, track, wbr. Per gli elementi vuoti, la chiusura del tag, obbligatoria in XHTML, è invece opzionale. Possiamo dunque definire un tag <img> secondo le regole XHTML: <img src="immagine.png" alt="testo" /> OPPURE <img src="immagine.png" alt="testo"> PROVENIENTI DA ALTRI NAMESPACES 3. Elementi provenienti da altri namespace: per questi elementi sono richiesti i tag ‘autochiudenti’. Si tratta degli elementi adottati da specifiche esterne, come SVG e MathML. ELEMENTI NORMALI 1. Elementi normali: sono quelli che possono racchiudere dei contenuti sotto forma di testo, commenti HTML, altri elementi HTML, etc. Sono elementi normali, dunque, i paragrafi (<p>), le liste (<ul>), i titoli (<h1>), etc. Salvo specifici casi, cui accenneremo nel seguito della lezione, gli elementi normali vengono definiti attraverso un tag di apertura (<p>) e un tag di chiusura (</p>). DOCTYPE Poiché, come visto, le attuali specifiche di HTML lo definiscono come estensione specifica di XML, occorre definire il tipo del documento Questa operazione si fa specificando un riferimento ad un DTD, ovvero un Document Type Definition Si tratta di un file che descrive la sintassi del linguaggio impiegato, ovvero di HTML DOCTYPE Non è di fatto sempre obbligatorio specificare il DocType di una pagina; la maggior parte dei browser la visualizzeranno correttamente anche senza specifica. Il DocType, nella sua forma più estesa, ha bisogno di diverse informazioni: una dichiarazione in cui si determina se il documento è di dominio pubblico o meno; una nota che veicoli a quali specifiche del W3C si sta facendo riferimento; la lingua del documento. SPECIFICHE CORRENTI La maggior parte delle pagine web, attualmente, utilizza questo DocType: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//IT" http://www.w3.org/TR/html4/loose.dtd> Il linguaggio usato all'interno della pagina è l'html, il documento è di dominio pubblico e rispetta le specifiche del W3C del tipo HTML Transitional definiti nel DTD (Document Type Definition) loose.dtd, la lingua impostata è l'italiano. SPECIFICHE TIPICHE Frameset: questa DTD è utilizzata dai siti che al loro interno contengono i frames. Strict: è una DTD che applica rigide regole ed applica quindi i nuovissimi standard del web. Ad esempio i tag deprecati non sono ammessi e gli elementi grafici di una pagina web devono essere definiti tramite i fogli di stile. Transitional: come è facilmente intuibile dal nome questo è documento che contiene delle specifiche di transizione da uno standard all'altro, è il tipo maggiormente utilizzato ora sul web. Il documento non applica rigide regole ed è quindi possibile utilizzare tag deprecati. ESEMPI DI SPECIFICHE Esempio di DocType per un sito con i frames: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" http://www.w3.org/TR/html4/frameset.dtd> Esempio di DocType per un sito che applica rigidamente le ultime direttive del W3C: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" http://www.w3.org/TR/html4/strict.dtd> INTESTAZIONE All’interno del tag <head> possono essere inseriti, oltre al titolo, altri tag: I meta tag generici I meta tag http-equiv META TAG GENERICI Nome DC.Title Valore Titolo del documento Funzione Serve a definire il titolo del documento description Descrizione del sito Serve per descrivere il contenuto del sito o della pagina creation_date Data Indica la data di creazione della pagina o quando essa verrà aggiornata keywords Ogni parola chiave separata da Serve a dichiarare le parole chiave del sito o della pagina robots PROSSIMO LUCIDO Serve a dare indicazione ai motori di ricerca per l'indicizzazione revisit-after n° di giorni seguito da days Serve a dire al motore di ricerca dopo quanti giorni dovrà rivisitare la pagina generator L'editor usato per scrivere il codice Indica il nome dell'editor che si è usato per scrivere il codice della pagina copyright Il proprietario del contenuto del sito Indica a chi spetta il copyright del contenuto del sito author L'autore della pagina Indica l'autore della pagina ed eventualmente il suo indirizzo e-mail owner language Proprietario del sito Una o più lingue Indica il proprietario del sito Indica la lingua o le lingue del sito DC.Language Una o più lingue Indica al motore di ricerca di indicizzare le pagine in base alla lingua IL META TAG ROBOTS Il meta tag robots serve a dare alcune indicazioni ai programmi dei motori di ricerca (i cosidetti spider); più nello specifico, serve a comunicare allo spider del motore di ricerca come si deve comportare I suoi possibili valori sono: none: non viene indicizzata la pagina e tutto ciò che è al suo interno index: indicizza solo la pagina che il motore di ricerca sta visitando noindex: non indicizza la pagina che il motore di ricerca sta visitando follow: non indicizza la pagina che sta visitando prosegue attraverso i link della pagina nofollow: indicizza la pagina che sta visitando ma salta i link della pagina all: è l'insieme tra follow e index, indicizza la pagina che sta visitando e prosegue attraverso i links. HTTP-EQUIV La loro sintassi, in linea generale, è la seguente: <meta http-equiv="nome_meta_tag" content="valore_del_meta_tag">. Nome Tag Valore Funzione expires Ora nel formato GMT Indica la data di scadenza della validità della pagina. reply-to Indirizzo mail Set-Cookie PROSSIMO LUCIDO refresh PROSSIMO LUCIDO content-Type PROSSIMO LUCIDO Pragma no-cache, costringe il browser a svuotare la cache e ricaricarla imagetoolbar yes abilita la visualizzazione della toolbar, Da IE 6.0 in su, abilita/disabilita la toolbar no la disabilita che appare sulle immagini. distribution global se è un contenuto di interesse generale, in caso contrario, usare local Definisce un indirizzo e-mail a cui gli utenti possono fare riferimento Salva un cookie sul computer del visitatore Serve per ricaricare la pagina dopo un determinato tempo Indica il set di caratteri in uso nella pagina Solo per NetScape. Forza il browser a non leggere il sito della cache Indica se il contenuto della pagina è di interesse generale o specifico I COOKIE Il meta tag Set-Cookie serve, come suggerisce il suo nome, a salvare un cookie sul computer di chi sta visitando la pagina. La sua sintassi è la seguente: <meta httpequiv="Set-Cookie" content="cookievalue=nome cookie; expires=data di scadenza; path=percorso nella cache"> cookievalue: attraverso questo parametro impostiamo il nome che prenderà il cookie sul computer dell'utente. expires: impostando una data in formato GMT si può determinare la data dopo la quale il cookie non avrà più effetto. path: dove verrà salvato all'interno della cache ESEMPIO DI SETTAGGIO DI UN COOKIE Esempio di settaggio di un cookie: <head> <meta http-equiv="Set-Cookie" content="cookievalue=xxx; expires=Tuesday, 13-Jul-06 23:00:00 GMT; path=/"> </head> REFRESH Il meta tag refresh ricarica il contenuto della pagina dopo un determinato intervallo di tempo, si può aggiungere anche un parametro mediante il quale il ricaricamento porterà ad un'altra pagina (reindirizzamento). La sua sintassi è: <meta http-equiv="REFRESH" content="intervallo di tempo per ricaricare; url=pagina a cui porterà il ricaricamente, opzionale"> ESEMPIO Esempio di reindirizzamento: <meta http-equiv="refresh" content="4; url=http://it.wikibooks.org"> CONTENT-TYPE Il meta tag content-Type serve per dichiarare il set di caratteri usati all'interno della pagina. La sua sintassi è la seguente: <meta http-equiv="content-Type" content="tipo di documento; charset=set di caratteri">. Il tipo di documento nel nostro caso è text/html con l'avvento dell'xml potrebbe esserci qualche nuovo valore. ESEMPIO Esempio di come utilizzare il meta tag content-Type: <meta http-equiv="content-Type" content="text/html; charset=iso-8859-1"> RIFERIMENTI http://it.wikibooks.org/wiki/HTML