Abilità Informatiche A.A. 2010/2011 Lezione 6: World Wide Web

Abilità Informatiche A.A. 2010/2011
Lezione 6: World Wide Web
Facoltà di Lingue e Letterature Straniere
Esempio di codifica ASCII

Il testo:

“Tradotto” (cioè cifrato) in ASCII (utilizzando tre cifre per
ogni numero; ad es.: 045,…) diventa:
078 101 108 000 109 101 122 122 111 000 100 101 108 000 099 097
109 109 105 110 000 100 105 000 110 111 115 116 114 097 000...

E rappresentato in aritmetica binaria (un byte per lettera)
diventa (limitandoci alle prime tre parole dell‟originale):
01001110 01100101 01101100 00000000 01101101 01100101 01111010
01111010 01101111 00000000 01100100 01100101 01101100 ...
2
Codifica dei formati
Apparentemente nel codice ASCII o UNICODE c’è più di quanto ci
serva per scrivere un testo
Ma supponiamo però di essere creativi e di voler scrivere una cosa
di questo tipo:
Questo è un esempio di testo “formattato”. A questo punto 256
codici non ci bastano più!
3
Codifica dei formati

Le lettere di un testo possono differire per:
carattere (font): Times, Arial,
Comic, Impact,…
 dimensioni: 20 punti, 10 punti, 28 punti,…
 “effetti”: grassetto, corsivo, sottolineato, in rilievo,…
 colore: nero, rosso, verde, ...
Un codice che tenesse conto di tutte queste possibilità però sarebbe enorme.
Approssimando per difetto abbiamo:
 256 caratteri 51 font 96 dimensioni 7 effetti 16 colori = 140.378.112
elementi da codificare
Costruire una tavola come quella del codice ASCII o UNICODE per tener
conto di tutte queste possibilità è irrealistico.



4
Codifica dei formati





5
In realtà la soluzione adottata non è quella di creare una tabella come quella
del codice ASCII
Viceversa, per scrivere testi formattati si adottano particolari linguaggi di
programmazione che consentono di descrivere in modo sintetico
l‟aspetto della pagina
A differenza del codice ASCII, non tutti questi formati sono trasferibili da un
sistema all‟altro
La maggior parte di essi richiede l‟uso di sistemi e di software particolari sia
per la scrittura che per la lettura
Insomma, si guadagna in flessibilità ma si perde in generalità
Codifica dei formati,
alcuni esempi
Può essere utile citare alcuni fra i formati di testo più diffusi:
 il formato DOC (da document)
 utilizzato da MS Word, necessita Word sia per la scrittura che per la lettura
 il formato HTML (HyperText Markup Language)
 utilizzato per le pagine web
 può essere scritto con qualsiasi programma di scrittura
 necessita per la lettura di un particolare tipo di programma, detto browser
(es.: Internet Explorer, Netscape Navigator)
 il formato PDF (Portable Document Format)
 utilizzato per diffondere documenti sul web (formato compatto)
 necessita per la scrittura di Adobe Acrobat Distiller
 necessita per la lettura di Acrobat Reader (gratuito)
 il formato PS (PostScript)
 può essere scritto partendo da un qualsiasi software di word processing
 per essere letto necessita di software particolari (gratuitamente disponibili
su Internet)
6
Testi

Un testo può essere visto di solito come una stringa più o meno lunga, che
viene letta sequenzialmente

Gli autori di testi di solito danno una struttura ai propri testi;
inoltre, a molti testi vengono associati degli attributi, come titolo, nome
dell‟autore, ecc.;

alcuni testi contengono riferimenti ad altri testi o a parti di se stessi
7
Ipertesti

Si definisce ipertesto un documento la cui struttura di
consultazione è non lineare, tale cioè che le parti di cui è
logicamente costituito (capitoli, paragrafi, …) sono
organizzate non semplicemente in successione, ma
secondo una struttura più complessa.
Ogni parte dell‟intero documento
(chiamata nodo) può contenere
degli anchor point, “punti di
aggancio” per relazioni (chiamate
link o anche hyperlink) che
rimandano ad altre parti (nodi
target) del documento.
8
Il Web






9
Un modo di connettere computers che offrono informazioni
(servers) con computer che la ricavano (clients).
Usa Internet, ma non è la stessa cosa di Internet
URL (Uniform Resource Locator, es. http://www.unive.it): un
modo per specificare quale informazione c‟è e dove è
HTTP (Hypertext Transfer Protocol): un modo per richiedere
specifica informazione ad un server
HTML (Hyptertext Markup Language): un linguaggio per
descrivere informazione da visualizzare.
Browser (Netscape, Internet Explorer, …): un programma per
fare richieste e visualizzare il risultato.
Un po’ di storia





Tutto inizia nel 1989: Tim Berners-Lee al CERN progetta un
modo per rendere accessibile in rete risultati di fisica.
Prime distribuzioni di software: 1991
Primo browser grafico (Mosaic): Feb 1993
Marc Andreessen alla NCSA (Univ of Illinois) progetta Netscape,
Mar 1994, primo browser commerciale
L‟evoluzione tecnica è gestita dal World Wide Web Consortium
(www.w3.org), agenzia non-profit, con sede al MIT, Berners-Lee
ne è il direttore.
10
Primo Esempio
Un documento html può avere
estensione .htm o .html
Tag iniziale
Tag finale
Index.html
Contenuto
11
Il Browser è un applicazione
software che consente di
vedere e di interagire con un
documento html
HTTP: Client (Browser) e Server

HTTP è un protocollo di comunicazione che definisce le regole con le quali
un programma client, chiamato Web Browser, e un programma server,
chiamato Web Server, possono interagire per scambiarsi richieste e
risposte

Il Web Server è un processo (applicazione) in esecuzione continua su un
elaboratore:
 Il server resta in continuo ascolto delle richieste in arrivo tramite la rete
Internet
 Alla ricezione di una richiesta, il server individua la risorsa richiesta (ad
es. un file HTML) e invia una risposta al client
(1)
(2)
12
Pagine dinamiche




Più in generale, una richiesta HTTP (proveniente da un browser Web) può puntare
ad un file in qualunque formato archiviato nel Web Server. Se il file non è HTML,
viene semplicemente scaricato dal Server al Client.
Una richiesta HTTP può anche puntare all‟invocazione di un programma da
eseguire sul server (server side)
Tipicamente l‟esecuzione del programma comporta anche la generazione di una
pagina HTML da inviare in risposta al browser
La pagina inviata in risposta non esiste come file fisico sul server, ma è generata “al
volo” (ovvero dinamicamente) a seguito della richiesta del browser (es. carrello
della spesa, forum, etc.)
13
Architettura Client-Server
information
Internet
Router
Router
Server
Client
Browser
richiesta
http://server.location/page
14
Web Server
Pagine HTML
Immagini
Suoni
Quando ‘‘clickiamo’’ una URL

Il client apre una connessione TCP/IP e manda una
richiesta del tipo:
GET /filename HTTP/1.0

Il server restituisce:



l‟informazione dell‟header
un file di testo
Il testo inviato può contenere materiale codificato
appartenente a diversi formati (HTML, GIF, JPEG, ecc.)
15
URL: Uniform Resource Locator


16
Il formato di una URL:
service://hostname/filename?other_stuff
La parte filename?other_stuff può codificare:
 valori forniti dal client (forms)
 richieste di far girare un programma sul server (cgi-bin)
 nient‟altro.
Quando compiliamo una form
0 Request Server/Form.html
3
Client/Browser
Database
1
2 Data 3
HTML Form
Action=
“Query.asp”
Result Page
2
SQL Server
Result
1
Query
Web Server (IIS)
1
HTML
form
Form.html
2
Query
Template
+ Code
Query.asp
17
Pagina HTML

La risorsa di base richiesta dal client è una pagina HTML,
ovvero un testo che rappresenta un documento ipertestuale
Contenuto
Content
++
www.corriere.it
Home Page
....
Markup
Markup
<HTML>
<HEAD>
</HEAD>
<BODY>
...
</BODY>
</HTML>
18
==
risultato
finale
final rendition
Hyper Text Markup Language

HTML è un linguaggio di “contrassegno” testuale

Un documento HTML è un file di testo che contiene due classi di
informazioni

19

Contenuto: il testo vero e proprio del documento; da solo non
garantisce la leggibilità

Sistema di contrassegno (mark-up): informazioni aggiuntive al
contenuto, per determinarne le modalità di presentazione; a loro
volta queste informazioni possono essere suddivise in due classi:

Struttura: informazioni su come è diviso logicamente il
documento (titolo, paragrafi, capitoli…)

Formattazione: informazioni sulla presentazione del
documento (font, colori, spaziature…)
Un editor di testo è sufficiente per creare documenti HTML
Elementi






Un documento HTML è composto da ELEMENTI
 Un elemento può a sua volta contenerne altri in modo nidificato
Un ELEMENTO è composto da un testo solitamente racchiuso tra 2 tag che
ne indicano l‟inizio e la fine
 Es.: <html> … </html>
Alcuni elementi hanno solo il tag di inizio
 Es.: <br>
usato come interruzione di riga
I tag hanno sempre la forma “< nome_tag >”
Il contenuto di un ELEMENTO è la stringa testuale racchiusa tra i due tag
 Testo
 Altri elementi nidificati
I tag non sono “case sensitive”
 <HTML>  <html>
20
Attributi





I tag possono avere degli attributi
Gli attributi consentono al designer di definire caratteristiche e
proprietà di un elemento adattandolo al contesto del documento
Sono sempre nel formato nome_attributo=“valore”
 Es.:
<IMG SRC=“sfondo1.gif ” ALIGN=“center” > …
Sono sempre aggiunti nel tag iniziale dell‟elemento
I browser commerciali permettono di usare attributi proprietari al di
fuori degli standard. E‟ una pratica sconsigliata poiché:
 Su browser diversi si potrebbero ottenere risultati diversi
 In alcuni casi attributi non aderenti allo standard vengono ignorati
21
Elemento
Start Tag
Contenuto
End Tag
Gli elementi br e img non hanno il tag finale
Attributo
22
Formattazione del testo: Headings

Sono definiti dai tag <H1> fino ad <H6>

Vengono utilizzati per differenziare diverse parti di un documento in
base alla loro importanza

Vengono visualizzati da diversi browser con variazioni nelle dimensioni
e nello stile, ma tutti seguono la regola che viene visualizzato lo stile di
dimensioni maggiori in grassetto con H1 e quello di dimensioni minori
con H6

L‟autore può variare lo stile (grassetto-sottolineato…) all‟interno
dell‟elemento
23
Paragrafi


Il browser non visualizza gli spazi multipli e i “new line” (=“a capo”)
 Ogni sequenza di spazi viene contata come un solo carattere di spazio
 Ogni “a capo” viene tradotta in uno spazio
Come risultato tutto il documento viene riportato su una sola riga e
riformattato in base alla dimensione della finestra

Un modo per dividere il documento in paragrafi è usare l‟elemento <P
align=“left|center|right”> testo … </P>
 Il testo inizierà su una nuova riga e sarà allineato in base all‟attributo align

Perché non usare <br> ?
 <br> va semplicemente a capo mentre <P> aggiunge solitamente mezza
riga di spazio per separare il paragrafo dal resto (vedi esempio nel lucido
seguente)
24
25
Stili Fisici

Vincolano il testo ad avere un determinato aspetto
 Stile del carattere
 Dimensione
 Colore

<B> … </B> testo in grassetto
<I> … </I> testo corsivo
<SUP> … </SUP> apice
<SUB> … </SUB> pedice
<INS> … </INS> testo inserito
<DEL> … </DEL> testo cancellato





26
Stili logici






Dicono che funzione ha una parte di testo anziché stabilire fisicamente
a come viene visualizzato
Sarà il browser a decidere come visualizzarli
<EM> … </EM> testo enfatizzato
<STRONG> … </STRONG> testo di maggiore enfasi
<ADDRESS> … </ADDRESS> contrassegna indirizzi di posta
 Si comporta in modo simile a <p> separando il contenuto dal resto
del documento
Alcuni tag sono ibridi: non definiscono né un aspetto fisico né un
utilizzo logico
 <BIG> … </BIG> il testo ha una dimensione maggiore rispetto a
quella standard
 <SMALL> … </SMALL> il testo ha una dimensione minore
rispetto a quella standard
27
28
Entità

Hanno due funzioni
 Permettono di visualizzare caratteri che non sono presenti sulla
tastiera


Permettono di visualizzare caratteri che hanno un significato
particolare in HTML e non verrebbero visualizzati in altro modo
 Ad esempio „<‟, „>‟
Si definiscono in due modi
 &nome_entita; (esempio: „<‟)
 &#numero_entità; (esempio: „ ‟)
29
30
Link



È l‟elemento che più ha contribuito all‟espansione del World Wide Web
Permette
 Di navigare dal documento corrente ad un altro
 Di navigare tra due punti dello stesso documento
 Di invocare altri servizi (mail, ftp,…)
Sintassi:
LINK:
 <a href=“URL”> testo visualizzato </a>
ANCORA: permette di navigare direttamente verso un punto del
documento
 <a name="label"> testo visualizzato </a>
31
Mentre il link è
visualizzato in modo
differente rispetto al resto
del testo, l’ancora è
formattata come testo
standard
32
Link

Esempio: uso della posta elettronica
<p>Scrivi al direttore del Corriere</p>
<a href =mailto:[email protected] />
33
Immagini

Esempio: inserimento di una immagine
<p>Foto del giorno</p>
<img src =“foto_del_giorno.jpg”
width=“200” height=“400” alt=“Foto del giorno”/>
34
Tabelle


Permettono di formattare il layout di una pagina (o di una sua parte) in forma
tabellare (righe,colonne)
Sintassi
 <table attributi>
<caption align=„…‟> didascalia </caption>
<tr attributi>
<th> titolo prima col. </th><th>titolo seconda col. </th>
</tr>
<tr>
<td>prima colonna, prima riga</td>…
</tr>
…
</table>
35
Attraverso l’attributo border
andiamo a definire quanto la
struttura della tabella è visibile
all’utente
36
Meta - Tag

Tag di servizio, utili per indicizzare il sito sui motori di ricerca
Si scrivono nella sezione head della pagina
Description  descrizione sintetica del sito
Keywords  contenuti relativi al sito

Sintassi:



<META NAME=“” CONTENT=“”>

Esempio:
<META NAME=“keywords” CONTENT=“insetti, vermi”>
<META NAME=“description” CONTENT=“introduzione agli insetti e ai vermi”>
descrive il contenuto e le parole chiave della pagina che possono essere
usate dai motori di ricerca per l‟indicizzazione
37
HTML come linguaggio formale



HTML è un linguaggio formale
Questo significa che
 E‟ sempre possibile decidere se una “frase” fa parte o meno del linguaggio
(decidibilità)
 E‟ possibile determinare in modo univoco il significato di una frase
In un linguaggio formale distinguiamo:
 Sintassi: insieme delle regole che permettono di costruire frasi corrette
 Semantica: insieme delle regole che permettono di dare un significato
alle frasi del linguaggio (una frase può essere sintatticamente corretta ma
non aver nessun significato semantico)
38
Errore sintattico: l’elemento
<table> è stato chiuso in
modo imprevisto.
39
Errore semantico: il
documento è sintatticamente
corretto ma il funzionamento
non è quello desiderato
dall’autore.
40
HTML 4

HTML 4 propone un nuovo approccio
 un'architettura in cui i vari aspetti caratteristici delle pagine sono
nettamente separati
 dal punto di vista logico e fisico
 ad ognuno di essi corrisponde uno strato (layer) o livello
indipendente
Per approfondire: Rick Darnel “HTML 4 Tutto&Oltre”, Ed.Apogeo
41
HTML 4 - Class e Div

I nuovi tag HTML 4 incoraggiano la sostituzione degli elementi e degli
attributi di presentazione con altri meccanismi.

Attributo class:
 consente di classificare più finemente i tag HTML per applicare
formati in modo selettivo
Elemento <div> :
 Il tag HTML <div> può essere usato per delimitare generiche sezioni
di contenuto
 La sezione può essere classificata con l‟attributo class
<div> + class:
 Permette di definire delle marcature personalizzate per il contenuto


42
Esempi
<h2 class=“miotitolo">Getting started</h2>

Definisce la classe “miotitolo” come un nuovo sottotipo
dell‟elemento <h2>
<div class=“contornato">
testo da contornare con un bordo fine
</div>

Definisce un nuovo marcatore tramite la classe “contornato”

Le proprietà stilistiche delle classi “miotitolo” e “contornato” devono
essere definite a parte:
 Fogli di Stile (Style Sheets)
43
Vantaggi dei CSS




Separazione stile-contenuto
 Contenuto con il minimo di struttura necessario
 Stili specificati a parte
 Possibilità di applicare lo stesso stile a più contenuti
 Possibilità di riutilizzo di uno stesso contenuto con stili diversi
Aderenza agli standard
 Maggiore durata nel tempo del progetto
 Maggiore compatibilità
Facilità di manutenzione
Maggiore controllo stilistico
44
Ancora su HTTP

Cosa significano…
 Cookies
 Cache
 Proxy
45
Cookies

Il protocollo HTTP è “privo di stato”: non ricorda nulla di una precedente
connessione

I cookies permettono di ricordare preferences, gestire ”carrelli della spesa",
ecc.

cookie: una linea di testo inviata dal server per essere memorizzata nella
macchina del client.


46
memorizzata nel browser finché gira (transient)
memorizzata in nel file system del client quando il browser termina la
sua esecuzione. (persistent)
Cookies

Quando il client si riconnette allo stesso server,
il browser manda indietro il cookie al server
lo rimanda verbatim; non aggiunge nulla
lo invia solo allo stesso dominio che lo aveva mandato originariamente
non contiene nessuna informazione che non fosse originata dal server
in principio sono “benigni”
ma sono usati pesantemente per monitorare gli accesso del browser, a scopi
commerciali.






47
Esempio





Chiedete la pagina xyz.com
La pagina contiene un banner pubblicitario
<img src=http://doubleclick.com/advt.gif>
Questo provoca il fatto che una pagina sia scaricata da DoubleClick.com, che
adesso conosce il tuo IP address e quale pagina stavi leggendo
DoubleClick manda indietro una pubblicità con un cookie che identifica „„te‟‟ su
DoubleClick
La prossima volta che chiederai una pagina qualsiasi che contenga una immagine
doubleclick.com


l‟ultimo cookie DoubleClick presente nel tuo file system sarà mandato
indietro a DoubleClick
L‟insieme dei siti e delle immagini che stai vedendo viene usato per:



aggiornare il record di dove sei stato e cosa hai visto
inviarti pubblicità mirata (e nuovi cookies)
Tutto questo non ti identifica necessariamente con nome e cognome, ma se tu
dai dei tuoi dati identificativi, questi saranno “legati” al tuo IP.
48
Cache

La cache memory, è una sorta di duplicato locale di piccole sezioni del World
Wide Web già visitate dall'utente. L'uso della cache permette di velocizzare
un eventuale nuovo accesso a pagine o a file già caricati.

Ogni volta che il browser riceve dalla rete una pagina, fa una copia di tutti i
file che la compongono sul disco rigido locale. Se nel seguito della navigazione
l'utente contatta di nuovo quella medesima pagina, il programma carica i file
memorizzati dalla cache, piuttosto che richiederli al server remoto.

Il meccanismo funziona anche se lo stesso file ricorre in più pagine: ad
esempio le icone che si ripetono su tutte le pagine di un certo sito.

La disponibilità e la dimensione della memoria cache sono modificabili
attraverso i comandi di configurazione del browser.

Dopo un determinato periodo di tempo, o quando lo spazio disponibile sul
disco viene esaurito, il browser cancella i file più vecchi, per fare spazio a
quelli nuovi.
49
Proxy Server

I proxy server estendono il meccanismo della memoria cache locale.

Un proxy server è un software che viene di norma installato su uno dei
computer di una rete locale collegata ad Internet.

La sua funzione è quella di conservare in un apposito archivio una copia di
ogni file richiesto dagli utenti che accedono alla rete.

Quando un utente richiede di accedere ad una data risorsa, il suo browser
contatta in primo luogo il proxy server
50

se le informazioni sono già presenti nella memoria locale, il proxy le
invia senza stabilire il collegamento con i computer remoti

altrimenti effettua la normale procedura di trasferimento remoto, e
prima di recapitare i dati al computer chiamante ne conserva una
copia.