SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Università degli Studi di Milano Bicocca
Dipartimento di Informatica, Sistemistica e Comunicazione
Corso di Strumenti e applicazioni del Web
5. Introduzione al Web (II)
Giuseppe Vizzari
Edizione 2015-16
Queste slides
Queste slide fanno parte del corso “Strumenti e applicazioni del Web”. Il sito del
corso, con il materiale completo, si trova in
strumentiapplicazioniweb.wordpress.com. Data la rapida evoluzione della rete, il
corso viene aggiornato ogni anno.
Il presente materiale è pubblicato con licenza Creative Commons
“Attribuzione - Non commerciale - Condividi allo stesso modo – 3.0”
(http://creativecommons.org/licenses/by-nc-sa/3.0/it/deed.it ):
La licenza non si estende alle immagini provenienti da altre fonti e alle
screen shot, i cui diritti restano in capo ai rispettivi proprietari, che, ove
possibile, sono stati indicati. L'autore si scusa per eventuali omissioni, e resta
a disposizione per correggerle.
Il linguaggio HTML
•Esigenza: distinguere contenuto, struttura
logica e modalità di presentazione delle pagine
•Ogni pagina contiene, oltre al suo contenuto
informativo, anche “meta-informazioni” che
specificano struttura e presentazione
•Queste sono scritte in un linguaggio
denominato “HyperText Markup Language”
(HTML), poi anche CSS (Cascading Style
Sheet, circa 1996+)
•Il "rendering" è gestito localmente dal browser,
che conosce le caratteristiche del device
• Markup, non programmazione!
3
Markup vs Programmazione
• Linguaggio di programmazione: utilizzato per comunicare istruzioni a
una macchina di calcolo, per definire programmi che controllino il
comportamento di un calcolatore
• Linguaggio di markup: utilizzato per annotare un documento in modo
tale che l'annotazione sia sintatticamente distinguibile dal testo
• Esempi di linguaggi di markup:
• TeX (e LaTeX)
• SGML
• HTML, XHTML, XML
• Le annotazioni possono avere diverse finalità:
• di presentazione (definiscono come visualizzare il testo al quale sono
associate)
• procedurali (definiscono istruzioni per programmi che elaborino il testo al
quale sono associate)
• descrittive (etichettano semplicemente parti del testo, disaccoppiando la
struttura dalla presentazione del testo stesso)
Esempio
5
1.Bla bla bla
2. 1.1 Blu blu blu
Lorem ipsum dolor sit
amet, consectetuer adipiscing
Nonummy nibh euismod
tincidunt ut laoreet dolore
magna aliquam erat volutpat.
1.2 Bli bli bli
Ut wisi enim ad minim
veniam, quis nostrud exerci
tation ullamcorper suscipit
Struttura
Heading 1
Heading 2
paragrafo
Verdana,
bold, 24
Verdana,
bold, 18
Verdana,
corsivo, 12
PresentazioneContenuto
HTML: esempio
6
HTML: link
7
Testo attivo
Immagine attiva
BottoneTab
I link possono assumere
diverse forme
8
HTML: immagini
9
HTML: iframe
10
<iframe width="560" height="315"
src="http://www.youtube.com/embed/qrO4YZeyl0I"
frameborder="0" allowfullscreen></iframe>
Sito
YouTube
Flickr
Incorporazione ("embedding")
11
iFrame
Embedding e diritto d’autore
In una sentenza del novembre 2014, la Corte di Giustizia
Europea ha stabilito che l’embedding non viola il diritto d’autore
http://www.key4biz.it/elex-corte-giustizia-ue-lembedding-non-
viola-copyright/
12
Le cose si complicano in fretta…
<!DOCTYPE html>
<html lang="en-IT”>
<head>
<meta content=
"/images/branding/googleg/1x/googleg_standard_color_128dp.p
ng">
<link href="/images/branding/product/ico/googleg_lodp.ico"
rel= "shortcut icon">
<meta content="origin" id="mref" name="referrer">
<title>Google</title>
<script>
[...]
</script>
<style>
[...]
</style>
[...]
</head>
<body alink="#DD4B39" bgcolor="#fff" class="hp vasq"
id="gsr" link="#12c” onload=“ […]">
<div class="ctr-p" id="viewport">
<div data-jiis="cc" id="doc-info"></div>
<div data-jiis="cc" id="cst”>
<style>
[...]
</style>
</div>
<a href=
"/setprefs?suggon=2&amp;prev=https://www.google.it/?gws_rd%
3Dssl&amp;sig=0_ySMtAze5Ck2H5XZmqjKIpBxszV4%3D"
style="left:-1000em;position:absolute">Screen-reader users,
click here to turn off Google Instant.</a>
<textarea id="csi" style="display:none">
</textarea>
…
Pagine statiche /
dinamiche
• Ogni pagina web è stata scritta (a
mano) da un utente umano?
• Chiaramente no…
• Un elemento fondamentale del
cosiddetto Web 2.0 è il fatto che i
contenuti sono spesso generati dagli
utenti stessi (che di norma non
conoscono HTML)
• Inoltre, ben prima, siti come portali di
notizie, e-commerce, annunci e
soprattutto i motori di ricerca,
dovevano generare automaticamente
e dinamicamente pagine web a
partire da basi di dati, archivi, altre
sorgenti di informazione
• Introduzione di linguaggi di
scripting per poter definire
template di pagine basate sul
contenuto di una sorgente di dati
Linguaggi di Scripting
• Linguaggio di programmazione per l'automazione di compiti
altrimenti eseguibili da un utente umano all'interno di un
ambiente software
• Variano da linguaggi molto specifici per applicazioni e domini
ristretti (e.g. MAXScript per 3ds Max), a linguaggi general
purpose (e.g. Python)
• Caratteristiche tipiche:
• Semplicità ma...
• Specificità, orientamento a funzionalità limitate
• Interpretati, raramente compilati, spesso molto dinamici
• Curiosità
• Lisp (nella sua variante AutoLISP) è incluso nelle versioni complete di
AutoCAD
JavaScript
• JavaScript è un linguaggio di
programmazione interpretato
inizialmente progettato per
permettere l'esecuzione di
script all'interno di browser web, lato client, per l'interazione
con l'utente, la validazione di dati all'interno di form, la
modifica di documenti web senza effetto 'pagina bianca', ...
• JavaScript è un linguaggio dinamico, debolmente tipizzato,
la cui sintassi è stata influenzata dal C e da Java…
• Oggi è utilizzato in modo pervasivo per costruire pagine web
dinamiche, capaci di riutilizzare servizi web resi disponibili
da terze parti, componendo – più che programmando –
applicazioni web
Lato client o lato server?
• JavaScript è (di norma) eseguito
‘lato client’
• Nel mondo web una serie di
tecnologie (non ultime le servlet
e JSP, ma anche PHP, Ruby on
Rails, …) rappresentano
tecnologie ‘lato server’
• Nella tipica architettura a 3 tier le
tecnologie lato server realizzano
gran parte delle logiche
applicative e accesso ai dati
(logic e data tier)
• Altre tecnologie ‘lato client’ sono
ad esempio Flash, le Applet di
Java
http://en.wikipedia.org/wiki/Multitier_architecture
Scripts (server side)
18
Script in
linguaggio PHP
eseguito dal
server
<html>
<body>
<?php
echo "ciao"
?>
</body>
</html>
<html>
<body>
ciao
</body>
</html>
ciao
Pagina sul server Pagina trasferita al client
Scripts (client side)
19
Script
eseguito dal
browser
Può esserci anche
un link allo script
(quindi, si possono
importare librerie
di terze parti)
Pagina trasferita al client
Embedding
20
<html>
<body>
embed code
</body>
</html>
oggetto
attivo
disponibile sulla
rete
In sintesi…
21
BROWSER
File HTML
Lavoro individuale
• Quali informazioni il browser trasmette al web server in un
dialogo HTTP? Approfonditelo, per es. sulle pagine di
Wikipedia
• Approfondite la problematica dei cookies, e verificate le
opzioni del vostro browser relativamente all’accettazione dei
cookies, e i settaggi in atto
• Approfondite il concetto di URL
• Provate qualche servizio di URL shortening, e verificate quali
servizi aggiuntivi vi vengono offerti, e il modello di business
che permette al servizio di sopravvivere sul mercato
• Il fatto che sulla vostra macchina venga eseguito un
programma scaricato da un sito vi lascia particolarmente
tranquilli?
• Perché si parla di “morte” di Flash?
22

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

2 Esercitazione: WordPress Parte 2
2 Esercitazione: WordPress Parte 22 Esercitazione: WordPress Parte 2
2 Esercitazione: WordPress Parte 2
 
15 - Web designer vs Web developer
15 - Web designer vs Web developer15 - Web designer vs Web developer
15 - Web designer vs Web developer
 
Web designer vs Web developer
Web designer vs Web developerWeb designer vs Web developer
Web designer vs Web developer
 
13 - Web feed e aggregatori
13 - Web feed e aggregatori13 - Web feed e aggregatori
13 - Web feed e aggregatori
 
08 - WordPress e il vostro blog
08 - WordPress e il vostro blog08 - WordPress e il vostro blog
08 - WordPress e il vostro blog
 
Introduzione al web (1/2) - 18/19
Introduzione al web (1/2) - 18/19Introduzione al web (1/2) - 18/19
Introduzione al web (1/2) - 18/19
 
Introduzione - Esercitazioni (18/19)
Introduzione - Esercitazioni (18/19)Introduzione - Esercitazioni (18/19)
Introduzione - Esercitazioni (18/19)
 
7 - Ricercare nel web - 16/17
7 - Ricercare nel web - 16/177 - Ricercare nel web - 16/17
7 - Ricercare nel web - 16/17
 
1 Esercitazione: Introduzione + WordPress Parte 1
1 Esercitazione: Introduzione + WordPress Parte 11 Esercitazione: Introduzione + WordPress Parte 1
1 Esercitazione: Introduzione + WordPress Parte 1
 
8 - Web app e CMS - 17/18
8 - Web app e CMS - 17/188 - Web app e CMS - 17/18
8 - Web app e CMS - 17/18
 
1 esercitazione - Internet
1 esercitazione - Internet 1 esercitazione - Internet
1 esercitazione - Internet
 
Web feed e aggregatori
Web feed e aggregatoriWeb feed e aggregatori
Web feed e aggregatori
 
Ricercare nel web
Ricercare nel webRicercare nel web
Ricercare nel web
 
8 - Web App e CMS - 16/17
8 - Web App e CMS - 16/178 - Web App e CMS - 16/17
8 - Web App e CMS - 16/17
 
1 - Introduzione al corso 18/19
1 - Introduzione al corso 18/191 - Introduzione al corso 18/19
1 - Introduzione al corso 18/19
 
Le applicazioni web e i CMS (18/19)
Le applicazioni web e i CMS (18/19)Le applicazioni web e i CMS (18/19)
Le applicazioni web e i CMS (18/19)
 
Il browser
Il browserIl browser
Il browser
 
12 - Social media
12 - Social media12 - Social media
12 - Social media
 
14 - I blog
14 - I blog14 - I blog
14 - I blog
 
12 - I Social Media - 16/17
12 - I Social Media - 16/1712 - I Social Media - 16/17
12 - I Social Media - 16/17
 

Andere mochten auch (7)

03 - Introduzione a Internet II
03 - Introduzione a Internet II03 - Introduzione a Internet II
03 - Introduzione a Internet II
 
02 - Introduzione a Internet (I)
02 - Introduzione a Internet (I)02 - Introduzione a Internet (I)
02 - Introduzione a Internet (I)
 
06 - Il browser
06 - Il browser06 - Il browser
06 - Il browser
 
04 - Introduzione al Web I
04 - Introduzione al Web I04 - Introduzione al Web I
04 - Introduzione al Web I
 
Internet senza eta' slide
Internet senza eta' slideInternet senza eta' slide
Internet senza eta' slide
 
Reti, internet e strumenti
Reti, internet e strumentiReti, internet e strumenti
Reti, internet e strumenti
 
Slides delle lezioni del corso di Strumenti e applicazioni del Web per il cor...
Slides delle lezioni del corso di Strumenti e applicazioni del Web per il cor...Slides delle lezioni del corso di Strumenti e applicazioni del Web per il cor...
Slides delle lezioni del corso di Strumenti e applicazioni del Web per il cor...
 

Ähnlich wie 05 - Introduzione al Web II

Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Presentazione Corso - Parte 3
Presentazione Corso - Parte 3
Giorgio Carpoca
 

Ähnlich wie 05 - Introduzione al Web II (20)

7. Applicazioni Web e CMS
7. Applicazioni Web e CMS7. Applicazioni Web e CMS
7. Applicazioni Web e CMS
 
07 - Web apps e CMS
07 - Web apps e CMS07 - Web apps e CMS
07 - Web apps e CMS
 
7 - Web application e CMS
7 - Web application e CMS7 - Web application e CMS
7 - Web application e CMS
 
5. Introduzione al web (ii)
5. Introduzione al web (ii)5. Introduzione al web (ii)
5. Introduzione al web (ii)
 
5 - Introduzione al Web (2/2)
5 - Introduzione al Web (2/2)5 - Introduzione al Web (2/2)
5 - Introduzione al Web (2/2)
 
Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Presentazione Corso - Parte 3
Presentazione Corso - Parte 3
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazor
 
8. Architetture web
8. Architetture web8. Architetture web
8. Architetture web
 
Introduzione al web (2/2) - 18/19
Introduzione al web (2/2) - 18/19Introduzione al web (2/2) - 18/19
Introduzione al web (2/2) - 18/19
 
5 - Introduzione al Web (2/2) - 17/18
5 - Introduzione al Web (2/2) - 17/185 - Introduzione al Web (2/2) - 17/18
5 - Introduzione al Web (2/2) - 17/18
 
Link. javascript ajax
  Link. javascript ajax  Link. javascript ajax
Link. javascript ajax
 
14 - Web designer vs Web developer ...
14 - Web designer vs Web developer ... 14 - Web designer vs Web developer ...
14 - Web designer vs Web developer ...
 
7. Applicazioni web e CMS
7. Applicazioni web e CMS7. Applicazioni web e CMS
7. Applicazioni web e CMS
 
Spa with Blazor
Spa with BlazorSpa with Blazor
Spa with Blazor
 
Framework di sviluppo web: introduzione a bootstrap e boostack
Framework di sviluppo web: introduzione a bootstrap e boostackFramework di sviluppo web: introduzione a bootstrap e boostack
Framework di sviluppo web: introduzione a bootstrap e boostack
 
programmare sito web.ppt
programmare sito web.pptprogrammare sito web.ppt
programmare sito web.ppt
 
Web2.0
Web2.0Web2.0
Web2.0
 
Flash vs jQuery
Flash vs jQueryFlash vs jQuery
Flash vs jQuery
 
Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynote
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobile
 

Mehr von Giuseppe Vizzari

Mehr von Giuseppe Vizzari (19)

Presentazione CdLM in Teoria e Tecnologia della Comunicazione A.A. 2020/21
Presentazione CdLM in Teoria e Tecnologia della Comunicazione A.A. 2020/21Presentazione CdLM in Teoria e Tecnologia della Comunicazione A.A. 2020/21
Presentazione CdLM in Teoria e Tecnologia della Comunicazione A.A. 2020/21
 
12 - Social media (19/20)
12 - Social media (19/20)12 - Social media (19/20)
12 - Social media (19/20)
 
11 - Evoluzione del Web (19/20)
11 - Evoluzione del Web (19/20)11 - Evoluzione del Web (19/20)
11 - Evoluzione del Web (19/20)
 
10 - Modelli di business nel Web (19/20)
10 - Modelli di business nel Web (19/20)10 - Modelli di business nel Web (19/20)
10 - Modelli di business nel Web (19/20)
 
9 - Ricercare nel Web
9 - Ricercare nel Web9 - Ricercare nel Web
9 - Ricercare nel Web
 
8 - Il browser
8 - Il browser8 - Il browser
8 - Il browser
 
6 - Wordpress e vostro blog
6 - Wordpress e vostro blog6 - Wordpress e vostro blog
6 - Wordpress e vostro blog
 
HTML (+ DOM) + CSS
HTML (+ DOM) + CSSHTML (+ DOM) + CSS
HTML (+ DOM) + CSS
 
4 - Introduzione al Web (1/2)
4 - Introduzione al Web (1/2)4 - Introduzione al Web (1/2)
4 - Introduzione al Web (1/2)
 
3 - Introduzione a Internet (2/2)
3 - Introduzione a Internet (2/2)3 - Introduzione a Internet (2/2)
3 - Introduzione a Internet (2/2)
 
2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)
 
1 - Introduzione al corso 19/20
1 - Introduzione al corso 19/201 - Introduzione al corso 19/20
1 - Introduzione al corso 19/20
 
Intelligenza Artificiale e Realtà Virtuale
Intelligenza Artificiale e Realtà VirtualeIntelligenza Artificiale e Realtà Virtuale
Intelligenza Artificiale e Realtà Virtuale
 
Wiki e open internet
Wiki e open internetWiki e open internet
Wiki e open internet
 
I social media
I social mediaI social media
I social media
 
Evoluzione del web
Evoluzione del webEvoluzione del web
Evoluzione del web
 
Modelli di business nel web
Modelli di business nel webModelli di business nel web
Modelli di business nel web
 
WordPress e il vostro blog - 18/19
WordPress e il vostro blog - 18/19WordPress e il vostro blog - 18/19
WordPress e il vostro blog - 18/19
 
Introduzione a Internet (2/2) - 18/19
Introduzione a Internet (2/2) - 18/19Introduzione a Internet (2/2) - 18/19
Introduzione a Internet (2/2) - 18/19
 

Kürzlich hochgeladen

Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
lorenzodemidio01
 
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
sasaselvatico
 
Presentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticaPresentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informatica
nico07fusco
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
giorgiadeascaniis59
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
lorenzodemidio01
 

Kürzlich hochgeladen (17)

TeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfTeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdf
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................
 
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptxProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
ProgettoDiEducazioneCivicaDefinitivo_Christian Tosone.pptx
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptx
 
TeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxTeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docx
 
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptxTeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
TeccarelliLorenzo-PrimadiSteveJobselasuaconcorrenza.pptx
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
 
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptxAdducchio.Samuel-Steve_Jobs.ppppppppppptx
Adducchio.Samuel-Steve_Jobs.ppppppppppptx
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................
 
Presentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informaticaPresentazione tre geni della tecnologia informatica
Presentazione tre geni della tecnologia informatica
 
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
CHIẾN THẮNG KÌ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN - PHAN THẾ HOÀI (36...
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.
 
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
 
Storia-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxStoria-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptx
 
Una breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opereUna breve introduzione ad Elsa Morante, vita e opere
Una breve introduzione ad Elsa Morante, vita e opere
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
 

05 - Introduzione al Web II

  • 1. Università degli Studi di Milano Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Strumenti e applicazioni del Web 5. Introduzione al Web (II) Giuseppe Vizzari Edizione 2015-16
  • 2. Queste slides Queste slide fanno parte del corso “Strumenti e applicazioni del Web”. Il sito del corso, con il materiale completo, si trova in strumentiapplicazioniweb.wordpress.com. Data la rapida evoluzione della rete, il corso viene aggiornato ogni anno. Il presente materiale è pubblicato con licenza Creative Commons “Attribuzione - Non commerciale - Condividi allo stesso modo – 3.0” (http://creativecommons.org/licenses/by-nc-sa/3.0/it/deed.it ): La licenza non si estende alle immagini provenienti da altre fonti e alle screen shot, i cui diritti restano in capo ai rispettivi proprietari, che, ove possibile, sono stati indicati. L'autore si scusa per eventuali omissioni, e resta a disposizione per correggerle.
  • 3. Il linguaggio HTML •Esigenza: distinguere contenuto, struttura logica e modalità di presentazione delle pagine •Ogni pagina contiene, oltre al suo contenuto informativo, anche “meta-informazioni” che specificano struttura e presentazione •Queste sono scritte in un linguaggio denominato “HyperText Markup Language” (HTML), poi anche CSS (Cascading Style Sheet, circa 1996+) •Il "rendering" è gestito localmente dal browser, che conosce le caratteristiche del device • Markup, non programmazione! 3
  • 4. Markup vs Programmazione • Linguaggio di programmazione: utilizzato per comunicare istruzioni a una macchina di calcolo, per definire programmi che controllino il comportamento di un calcolatore • Linguaggio di markup: utilizzato per annotare un documento in modo tale che l'annotazione sia sintatticamente distinguibile dal testo • Esempi di linguaggi di markup: • TeX (e LaTeX) • SGML • HTML, XHTML, XML • Le annotazioni possono avere diverse finalità: • di presentazione (definiscono come visualizzare il testo al quale sono associate) • procedurali (definiscono istruzioni per programmi che elaborino il testo al quale sono associate) • descrittive (etichettano semplicemente parti del testo, disaccoppiando la struttura dalla presentazione del testo stesso)
  • 5. Esempio 5 1.Bla bla bla 2. 1.1 Blu blu blu Lorem ipsum dolor sit amet, consectetuer adipiscing Nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. 1.2 Bli bli bli Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit Struttura Heading 1 Heading 2 paragrafo Verdana, bold, 24 Verdana, bold, 18 Verdana, corsivo, 12 PresentazioneContenuto
  • 8. Testo attivo Immagine attiva BottoneTab I link possono assumere diverse forme 8
  • 10. HTML: iframe 10 <iframe width="560" height="315" src="http://www.youtube.com/embed/qrO4YZeyl0I" frameborder="0" allowfullscreen></iframe>
  • 12. Embedding e diritto d’autore In una sentenza del novembre 2014, la Corte di Giustizia Europea ha stabilito che l’embedding non viola il diritto d’autore http://www.key4biz.it/elex-corte-giustizia-ue-lembedding-non- viola-copyright/ 12
  • 13. Le cose si complicano in fretta… <!DOCTYPE html> <html lang="en-IT”> <head> <meta content= "/images/branding/googleg/1x/googleg_standard_color_128dp.p ng"> <link href="/images/branding/product/ico/googleg_lodp.ico" rel= "shortcut icon"> <meta content="origin" id="mref" name="referrer"> <title>Google</title> <script> [...] </script> <style> [...] </style> [...] </head> <body alink="#DD4B39" bgcolor="#fff" class="hp vasq" id="gsr" link="#12c” onload=“ […]"> <div class="ctr-p" id="viewport"> <div data-jiis="cc" id="doc-info"></div> <div data-jiis="cc" id="cst”> <style> [...] </style> </div> <a href= "/setprefs?suggon=2&amp;prev=https://www.google.it/?gws_rd% 3Dssl&amp;sig=0_ySMtAze5Ck2H5XZmqjKIpBxszV4%3D" style="left:-1000em;position:absolute">Screen-reader users, click here to turn off Google Instant.</a> <textarea id="csi" style="display:none"> </textarea> …
  • 14. Pagine statiche / dinamiche • Ogni pagina web è stata scritta (a mano) da un utente umano? • Chiaramente no… • Un elemento fondamentale del cosiddetto Web 2.0 è il fatto che i contenuti sono spesso generati dagli utenti stessi (che di norma non conoscono HTML) • Inoltre, ben prima, siti come portali di notizie, e-commerce, annunci e soprattutto i motori di ricerca, dovevano generare automaticamente e dinamicamente pagine web a partire da basi di dati, archivi, altre sorgenti di informazione • Introduzione di linguaggi di scripting per poter definire template di pagine basate sul contenuto di una sorgente di dati
  • 15. Linguaggi di Scripting • Linguaggio di programmazione per l'automazione di compiti altrimenti eseguibili da un utente umano all'interno di un ambiente software • Variano da linguaggi molto specifici per applicazioni e domini ristretti (e.g. MAXScript per 3ds Max), a linguaggi general purpose (e.g. Python) • Caratteristiche tipiche: • Semplicità ma... • Specificità, orientamento a funzionalità limitate • Interpretati, raramente compilati, spesso molto dinamici • Curiosità • Lisp (nella sua variante AutoLISP) è incluso nelle versioni complete di AutoCAD
  • 16. JavaScript • JavaScript è un linguaggio di programmazione interpretato inizialmente progettato per permettere l'esecuzione di script all'interno di browser web, lato client, per l'interazione con l'utente, la validazione di dati all'interno di form, la modifica di documenti web senza effetto 'pagina bianca', ... • JavaScript è un linguaggio dinamico, debolmente tipizzato, la cui sintassi è stata influenzata dal C e da Java… • Oggi è utilizzato in modo pervasivo per costruire pagine web dinamiche, capaci di riutilizzare servizi web resi disponibili da terze parti, componendo – più che programmando – applicazioni web
  • 17. Lato client o lato server? • JavaScript è (di norma) eseguito ‘lato client’ • Nel mondo web una serie di tecnologie (non ultime le servlet e JSP, ma anche PHP, Ruby on Rails, …) rappresentano tecnologie ‘lato server’ • Nella tipica architettura a 3 tier le tecnologie lato server realizzano gran parte delle logiche applicative e accesso ai dati (logic e data tier) • Altre tecnologie ‘lato client’ sono ad esempio Flash, le Applet di Java http://en.wikipedia.org/wiki/Multitier_architecture
  • 18. Scripts (server side) 18 Script in linguaggio PHP eseguito dal server <html> <body> <?php echo "ciao" ?> </body> </html> <html> <body> ciao </body> </html> ciao Pagina sul server Pagina trasferita al client
  • 19. Scripts (client side) 19 Script eseguito dal browser Può esserci anche un link allo script (quindi, si possono importare librerie di terze parti) Pagina trasferita al client
  • 22. Lavoro individuale • Quali informazioni il browser trasmette al web server in un dialogo HTTP? Approfonditelo, per es. sulle pagine di Wikipedia • Approfondite la problematica dei cookies, e verificate le opzioni del vostro browser relativamente all’accettazione dei cookies, e i settaggi in atto • Approfondite il concetto di URL • Provate qualche servizio di URL shortening, e verificate quali servizi aggiuntivi vi vengono offerti, e il modello di business che permette al servizio di sopravvivere sul mercato • Il fatto che sulla vostra macchina venga eseguito un programma scaricato da un sito vi lascia particolarmente tranquilli? • Perché si parla di “morte” di Flash? 22