Informatica per la comunicazione"
- lezione 9 Internet ≠ Web!"
•  Il web è solo uno degli aspetti di internet."
•  In particolare, chiamiamo web tutta l’informazione che
riusciamo a ottenere collegandoci ad altri calcolatori
per mezzo di un browser"
•  Il browser è un’applicazione che consente la
visualizzazione su schermo del contenuto di pagine
ipermediali provenienti da altri computer e trasferite
per mezzo del protocollo HTTP"
Che cos’è Internet?"
Questo è solo un aspetto di Internet."
Che cos’è Internet?"
• 
• 
• 
• 
"Internet è una realtà molto complessa, di cui distinguiamo
numerosi aspetti:"
le infrastrutture fisiche (hardware) utilizzate per il
trasferimento dell’informazione"
i protocolli di gestione di tali infrastrutture, dai livelli più
bassi legati ai fenomeni fisici nell’hardware fino a quelli
più alti riguardanti le applicazioni per gli utenti finali"
i servizi offerti all’utente da applicazioni software che
sfruttano internet per il trasferimento di informazione"
le organizzazioni e le società di gestione che creano e
mantengono le condizioni affinché internet possa
funzionare regolarmente"
Gestione di Internet"
"Per quanto riguarda le organizzazioni di gestione di internet
ricordiamo:"
•  gli enti di gestione delle infrastrutture fisiche (come il GARR in
Italia)"
•  gli enti che definiscono e pubblicano i protocolli per internet,
come l’International Organization for Standardization (ISO),
che si occupa di standard di ogni tipo, o il World Wide Web
Consortium (W3C), che si occupa in particolare degli standard
del Web"
•  le agenzie che assegnano su richiesta (e a pagamento) a
individui e organizzazione i nomi dei domini (come
www.unibg.it) da utilizzare negli indirizzi web"
•  queste agenzie, dette domain name registrar, fanno in ultima
analisi riferimento alla Internet Corporation for Assigned
Names and Numbers (ICANN), a sua volta controllata dal
governo degli Stati Uniti "
Internet / Intranet / Extranet"
•  Le tecnologie di internet possono essere utilizzate
anche in reti ‘chiuse’, riservate ad esempio ai
membri di un’organizzazione"
•  In genere si distingue fra:"
–  intranet: una rete privata, riservata ai membri di
un’organizzazione, basata sulle tecnologie di
internet"
–  extranet: una rete analoga a un’intranet, ma
estesa a certe categorie di partner esterni di
un’organizzazione (clienti, fornitori, ecc.)"
Applicazioni Internet / Web"
•  Una rete telematica può essere utilizzata per creare
applicazioni che si basano sull’interazione di più componenti
che girano su host diversi e sfruttano la rete per trasferire
dati da uno host all’altro"
•  In particolare, quando la rete utilizzata è internet, queste
applicazioni sono denominate “applicazioni internet”"
•  Le applicazioni che consentono a un utente di accedere a
certi servizi utilizzando un browser prendono il nome di
“applicazioni web” (esempi: easyjet, trenitalia, ticketone,
google maps)"
•  Altre applicazioni internet, invece, richiedono da parte
dell’utente l’uso di un’applicazione speciale (in genere
scaricata dalla rete e installata sul computer (esempio:
google earth)"
Architettura Client - Server"
•  Le applicazioni internet possono essere realizzate secondo
differenti architetture"
•  L’architettura più semplice e diffusa è l’architettura client-server"
"Nei sistemi client-server:"
–  una componente dell’applicazione, detta server, ha il
compito di fornire determinati servizi"
–  un’altra componente, detta client, ha il compito di
consumare i servizi forniti dal server"
•  In genere c’è una forte asimmetria fra la componente server
(spesso piuttosto complessa) e la componente client (di solito
piuttosto semplice)"
•  Si noti che molte copie del client possono interagire
contemporaneamente e da host diversi con un unico server"
Esempio di client-server"
•  Google Earth"
–  il server è un’applicazione che gira sui computer
di Google Inc., in grado di fornire mappe
satellitari di tutta la superficie terrestre, integrate
con svariate informazioni accessorie (confini,
strade, condizioni meteorologiche ecc.)"
–  il client è un’applicazione che gestisce la
visualizzazione delle informazioni inviate dal
server, e che può essere scaricata dal sito web
di Google Inc. e installata su qualsiasi computer"
Applicazioni Web C-S"
•  Nelle applicazioni web, il client è costituito
semplicemente da un browser"
•  Il browser può interpretare ed eseguire localmente dei
programmi contenuti all’interno delle pagine web
scaricate dal server"
•  I programmi contenuti in una pagina web ed eseguiti dal
client all’interno del browser sono denominati applet
(cioè “applicazioncine”)"
•  Esempi:"
–  animazioni visualizzate all’interno di pagina"
–  visualizzazione di un video di YouTube"
–  giochi online"
•  In altri casi, durante la navigazione di un sito web
certi programmi sono eseguiti dal server e i risultati
dell’esecuzione vengono poi inviati al client"
•  Esempi:"
–  generazione di pagine web dinamiche"
–  pagine web interattive"
Lo stato dell’interazione"
•  Le applicazioni web si basano sul protocollo http, che presenta
un problema:"
–  l’interazione è “senza memoria” o, come si dice con un
termine tecnico, priva di stato (stateless)"
–  ciò significa che ogni richiesta che giunge al server da parte
del client è trattata dal server come una nuova richiesta,
indipendente dalle richieste precedenti"
–  in altre parole il server non tiene memoria delle eventuali
fasi precedenti dell’interazione"
"Attenzione però:"
•  il client può conservare memoria delle sue richieste
precedenti – il punto è che non lo fa il server"
•  alcune tecnologie particolari, come le servlet Java,
consentono al server di mantenere una
rappresentazione dello stato dell’interazione"
Cookies"
•  Per molte applicazioni questo costituisce un problema:
sono quindi state sviluppate tecniche per rappresentare
lo stato dell’interazione (state management)"
•  La soluzione più comune si basa sull’uso dei cookie:"
–  quando un server deve conservare per il futuro certi dati
concernenti l’interazione con un certo client, memorizza
questi dati direttamente sullo host del client; questi dati sono
rappresentati sotto forma di file denominati “cookie”"
–  quando il server ha necessità di utilizzare i dati conservati in
un cookie, li legge direttamente dallo host del client"
•  L’uso di questa tecnica non è priva di problemi, perché
consentire al server l’accesso al file system del client
comporta rischi per la sicurezza e la privatezza dei dati"
"I browser danno quindi la possibilità di escludere l’invio
dei cookie da parte di un server, ma a volte questa
limitazione può impedire al server di operare
correttamente"
Parte III: il computer come strumento
per l’interazione e la comunicazione
"
Web 1.0"
Web 1.0"
Che cosa vuol dire 1.0?"
"
In informatica, la numerazione x.y per
indicare la versione di un prodotto ha
questo significato: se le modifiche
apportate non sono particolarmente
rivoluzionarie, si considera il nuovo
prodotto solo una variante della
stessa versione, quindi si lascia
intatto x e si aumenta y di 1. Quando
invece si è di fronte a un
cambiamento radicale, si aumenta x
di 1 e si azzera y per segnare l’inizio
di una nuova era del prodotto."
"
Web 1.0"
1.1"
1.2"
2.0"
•  Il Web (o più precisamente World Wide Web, noto
anche come WWW o W3) è nato nell’agosto del
1991 presso il CERN di Ginevra, grazie a un’idea di
Tim Berners-Lee"
•  Secondo quanto riportato sul blog di Google, il Web
contava nel luglio 2008 più di 1000 miliardi di pagine
distribuite su più di 100 milioni di host"
•  Che cos’è il Web?"
–  un colossale ipertesto, formato da miliardi di
‘pagine’ collegate fra loro?"
–  un archivio distribuito di informazioni?"
–  una rete di servizi fruibili in certi luoghi virtuali
chiamati “siti”?"
Evoluzione del Web"
•  Nell’evoluzione del Web si distinguono oggi diverse fasi:"
–  Web 1.0: la fase iniziale, dal 1991 ai primi anni del 2000"
–  Web 2.0: dai primi anni del 2000 a oggi (il termine “Web
2.0” è stato usato per la prima volta nel 2004)"
–  Web 3.0: ciò che il Web dovrebbe diventare nei
prossimi anni"
–  ..."
•  La distinzione fra queste fasi è piuttosto vaga, e autori
diversi le definiscono in modi differenti: per comodità faremo
comunque uso di questa terminologia, almeno in modo
informale"
Il Web 1.0"
risorse rese disponibili "
problemi e soluzioni"
la tipologia dell’interazione"
Risorse rese disponibili"
•  Il Web 1.0 è innanzitutto un ipertesto multimediale
distribuito:"
–  ipertesto: il Web 1.0 è costituito da pagine collegate
fra loro da link, che consentono a un utente di
navigare nell’ipertesto"
–  multimediale: le pagine contengono un testo
audiovisivo nel senso più ampio del termine: testo
linguistico, grafici, immagini, video"
–  distribuito: le pagine dell’ipertesto risiedono su molti
host distinti, connessi tramite internet"
•  Un insieme di pagine web correlate (in genere, ma non
necessariamente, memorizzate su un singolo host)
costituiscono un sito Web"
Problemi e soluzioni"
•  La seguente tabella schematizza i principali
problemi del Web 1.0 e le relative soluzioni:"
"
problema"
soluzione"
costruire le pagine"
linguaggio HTML
(HyperText Markup Language)"
pubblicare le pagine"
protocollo HTTP,
URL (Uniform Resource Locator)"
trovare le pagine"
motori di ricerca"
visualizzare le pagine"
browser"
lato server"
"
lato client"
I linguaggi di marcatura"
• 
Un linguaggio di marcatura (markup language) è un sistema di
simboli convenzionali (chiamati tag) che possono essere utilizzati
per marcare certe sezioni di un testo, associando una
determinata proprietà a ciascuna sezione"
•  Esempio:"
" <titoloOpera>La Divina Commedia</titoloOpera>
<nomeAutore>Dante Alighieri</nomeAutore>
<titoloVolume>Inferno</titoloVolume>
<titoloCapitolo>Canto I</titoloCapitolo>
<testo>
Nel mezzo del cammin di nostra vita
mi ritrovai per una selva oscura
ché la diritta via era smarrita
...
</testo>
• 
I tag si comportano come delle parentesi: a ogni tag di apertura deve
corrispondere un tag di chiusura e fra questi è contenuta la sezione
marcata del testo:"
" <titoloOpera>Il cacciatore di aquiloni</titoloOpera>
•  È possibile inserire l’una nell’altra sezioni marcate di testo:"
" <capitolo>
<titoloCapitolo>Uno</titoloCapitolo>
<periodo>
Sono diventato la persona che sono oggi all’età di
dodici anni, in una gelida giornata invernale del
1975.
...
</periodo>
...
</capitolo>
...
Il linguaggio HTML"
• 
HTML (HyperText Markup Language) è un linguaggio
standard per la marcatura di ipertesti, ovvero di testi che
possono contenere collegamenti (link) ad altre pagine"
•  HTML prevede un insieme prefissato di tag, il cui significato è
definito da una raccomandazione W3C"
"Esempi di tag HTML:"
" "<head> ... </head>
<style>... </style>
<title>... </title>
<body> ... </body>
"HTML (HyperText Markup Language) è un linguaggio
standard per la marcatura di ipertesti, ovvero di testi che
possono contenere collegamenti (link) ad altre pagine"
"HTML prevede un insieme prefissato di tag, il cui significato è
definito da una raccomandazione W3C"
"Esempi di tag HTML:"
" "<head> ... </head>“Significato” va sempre
<style>... </style>
inteso in maniera molto
<title>... </title>
debole in informatica.
<body> ... </body>Ricordatevi della stanza
cinese.
"
Significato?"
<題>Freedom</題>
Il W3C dice:"
Authors should use the TITLE element to
identify the contents of a document. Since
users often consult documents out of context,
authors should provide context-rich titles.
Thus, instead of a title such as "Introduction",
which doesn't provide much contextual
background, authors should supply a title such
as "Introduction to Medieval Bee-Keeping"
instead."
Le pagine HTML"
•  Nel caso più semplice, una pagina web è un file di testo
marcato tramite tag HTML ""
•  per costruire una pagina è possibile: "
•  scrivere direttamente un file HTML utilizzando un
editor di file di testo"
•  oppure scrivere una pagina web con uno
strumento software specifico, che la traduce
automaticamente in HTML"
•  per visualizzare una pagina è possibile:"
•  utilizzare un browser, che è in grado di
visualizzare i file HTML interpretando i tag in
modo coerente con le raccomandazioni W3C"