SlideShare una empresa de Scribd logo
1 de 31
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 2018-19
Queste slides
Queste slides fanno parte del corso “Strumenti e applicazioni del Web”. Il sito del
corso, con il materiale completo, si trova in https://gvizzari.hopto.org/wp/. 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.
Naming: URI, URL, URN
3
URI
Uniform Resource Identifier
URN
Uniform Resource Name
Specifica il nome della risorsa
Esempio:
(International Standard Book Number)
URL
Uniform Resource Locator
Specifica l'indirizzo della risorsa
Esempio
4
Web
server
Root /
A corso
B
Index.html
Filesystemdelcomputer
Se non mettete l’URL completo…
5
rpolillo.it
Web
server
Web server (pathname di default)browser
Se ci sono vari siti sullo stesso server,
Si usano varie tecniche per fornire il sito
di default. La soluzione più elegante è
quella di definire vari host virtuali,
ciascuno con un proprio indirizzo IP.
http://en.wikipedia.org/wiki/Virtual_hosting
URL shortening
• Gli URL tendono ad essere lunghi  servizi che
accorciano gli URL
• Esempio: http://www.rpolillo.it/index.php/2013/01/workshop-su-digital-heritage-
levoluzione-della-memoria-1-feb-2012-in-bicocca/  http://bit.ly/1FKg3oN
6
Esempi:
bit.ly
tinyurl.com
t.Co
….
Statistiche d'accesso e altri servizi
HTTP
internet
Browser
Web
server
HTML
HTML
PUT
GET
Servizio di URL
shortening
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!
7
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
9
1.Bla bla bla
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
10
HTML: link
11
Testo attivo
Immagine attiva
BottoneTab
I link possono assumere
diverse forme
12
HTML: immagini
13
HTML: iframe
14
<iframe width="560" height="315"
src="http://www.youtube.com/embed/qrO4YZeyl0I"
frameborder="0" allowfullscreen></iframe>
Sito
YouTube
Flickr
Incorporazione ("embedding")
15
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/
16
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)
22
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
WordPress,
ad esempio...
(1/2)
• Gli utenti non scrivono pagina
HTML, ma da qualche parte i dati
delle pagine, degli utenti, dei
commenti, dei contenuti
multimediali, … devono essere
memorizzati
• Questo a destra è lo schema del
DB relazionale di WordPress…
• Non è rilevante per il tipico utente,
sebbene sia potenzialmente molto
utile, addirittura fondamentale per
scrivere nuovi plugin
• Non è importante conoscerlo a
memoria…
• D’altronde è necessario sapere che
esiste e magari avere qualche
rudimentale conoscenza di come è
strutturato
23
WordPress, ad esempio… (2/2)
• La cartella principale
dell’installazione di default di
WordPress include diversi file
PHP
• In particolare, index.php è il
template della pagina indice
del blog, che riporta l’elenco
dei post in ordine cronologico
decrescente…
• … non aprite il file index.php
sperando di vedere
direttamente il codice che
effettua questa operazione:
WordPress è molto complicato,
internamente, e index.php è
molto piccolo… ma richiama
numerosi altri file
https://www.optimizesmart.com/wordpress-ninja-15-minutes/
Scripts (client side)
25
Script
eseguito dal
browser
Può esserci anche
un link allo script
(quindi, si possono
importare librerie
di terze parti)
Pagina trasferita al client
WordPress, ad esempio…
Posso dinamicamente, e senza avere un refresh complessivo della
pagina, passare dalla statistica delle viste singole a quella del numero di
utenti
WordPress, ad esempio…
Questo cambiamento implica un’interazione con il server, ma
viene gestito dalla pagina attuale, in particolare da codice
JavaScript
Scripts (server side + client side)
Script in
linguaggio PHP
eseguito dal
server
<html>
<body>
<?php
echo "ciao"
?>
<script>
document.write(“ Pippo…”);
</script>
</body>
</html>
<html>
<body>
ciao
<script>
document.write(“ Pippo…”);
</script>
</body>
</html>
ciao Pippo…
Pagina sul server Pagina trasferita al client
Script eseguito
dal browser sul
client
Praticamente ogni web application minimamente interessante
oggi adotta questo genere di schema architetturale
Embedding
29
<html>
<body>
embed code
</body>
</html>
oggetto
attivo
disponibile sulla
rete
In sintesi…
30
BROWSER
File HTML
Lavoro individuale
• 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?
• In sintesi, quanti linguaggi dovrebbe conoscere un cosidetto
“full stack developer” per essere davvero completo?
Ripercorrete le slide e cercate di fare un elenco completo per
quello che vi è stato detto…
31

Más contenido relacionado

La actualidad más candente

9 - Wordpress e il vostro blog
9 - Wordpress e il vostro blog9 - Wordpress e il vostro blog
9 - Wordpress e il vostro blogGiuseppe Vizzari
 
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)Giuseppe Vizzari
 
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/19Giuseppe Vizzari
 
14 - Web designer vs Web developer ...
14 - Web designer vs Web developer ... 14 - Web designer vs Web developer ...
14 - Web designer vs Web developer ... Giuseppe Vizzari
 
1 - Introduzione al corso 17/18
1 - Introduzione al corso 17/181 - Introduzione al corso 17/18
1 - Introduzione al corso 17/18Giuseppe Vizzari
 
4 - Introduzione al Web (1/2) - 16/17
4 - Introduzione al Web (1/2) - 16/174 - Introduzione al Web (1/2) - 16/17
4 - Introduzione al Web (1/2) - 16/17Giuseppe Vizzari
 
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/19Giuseppe Vizzari
 
1 - Introduzione al corso 18/19
1 - Introduzione al corso 18/191 - Introduzione al corso 18/19
1 - Introduzione al corso 18/19Giuseppe Vizzari
 
Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)Giuseppe Vizzari
 
2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)Giuseppe Vizzari
 
Introduzione - Esercitazioni (18/19)
Introduzione - Esercitazioni (18/19)Introduzione - Esercitazioni (18/19)
Introduzione - Esercitazioni (18/19)Andrea Gorrini
 
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/19Giuseppe Vizzari
 
4 - Introduzione al Web (1/2)
4 - Introduzione al Web (1/2)4 - Introduzione al Web (1/2)
4 - Introduzione al Web (1/2)Giuseppe Vizzari
 
13 - Web feed e aggregatori
13 - Web feed e aggregatori13 - Web feed e aggregatori
13 - Web feed e aggregatoriGiuseppe Vizzari
 
05 - Introduzione al Web II
05 - Introduzione al Web II05 - Introduzione al Web II
05 - Introduzione al Web IIGiuseppe Vizzari
 
1 - Introduzione al corso 19/20
1 - Introduzione al corso 19/201 - Introduzione al corso 19/20
1 - Introduzione al corso 19/20Giuseppe Vizzari
 

La actualidad más candente (20)

9 - Wordpress e il vostro blog
9 - Wordpress e il vostro blog9 - Wordpress e il vostro blog
9 - Wordpress e il vostro blog
 
8 - Il browser
8 - Il browser8 - Il browser
8 - Il browser
 
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)
 
HTML (+ DOM) + CSS
HTML (+ DOM) + CSSHTML (+ DOM) + CSS
HTML (+ DOM) + CSS
 
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
 
14 - Web designer vs Web developer ...
14 - Web designer vs Web developer ... 14 - Web designer vs Web developer ...
14 - Web designer vs Web developer ...
 
Ricercare nel web
Ricercare nel webRicercare nel web
Ricercare nel web
 
1 - Introduzione al corso 17/18
1 - Introduzione al corso 17/181 - Introduzione al corso 17/18
1 - Introduzione al corso 17/18
 
4 - Introduzione al Web (1/2) - 16/17
4 - Introduzione al Web (1/2) - 16/174 - Introduzione al Web (1/2) - 16/17
4 - Introduzione al Web (1/2) - 16/17
 
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
 
1 - Introduzione al corso 18/19
1 - Introduzione al corso 18/191 - Introduzione al corso 18/19
1 - Introduzione al corso 18/19
 
7 - Web application e CMS
7 - Web application e CMS7 - Web application e CMS
7 - Web application e CMS
 
Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/2)Introduzione a JavaScript e jQuery (1/2)
Introduzione a JavaScript e jQuery (1/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)
 
Introduzione - Esercitazioni (18/19)
Introduzione - Esercitazioni (18/19)Introduzione - Esercitazioni (18/19)
Introduzione - Esercitazioni (18/19)
 
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
 
4 - Introduzione al Web (1/2)
4 - Introduzione al Web (1/2)4 - Introduzione al Web (1/2)
4 - Introduzione al Web (1/2)
 
13 - Web feed e aggregatori
13 - Web feed e aggregatori13 - Web feed e aggregatori
13 - Web feed e aggregatori
 
05 - Introduzione al Web II
05 - Introduzione al Web II05 - Introduzione al Web II
05 - Introduzione al Web II
 
1 - Introduzione al corso 19/20
1 - Introduzione al corso 19/201 - Introduzione al corso 19/20
1 - Introduzione al corso 19/20
 

Similar a Introduzione al web (2/2) - 18/19

5 - Introduzione al Web (2/2) - 16/17
5 - Introduzione al Web (2/2) - 16/175 - Introduzione al Web (2/2) - 16/17
5 - Introduzione al Web (2/2) - 16/17Giuseppe Vizzari
 
Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner Matteo Magni
 
Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesignerHtml e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesignerMatteo Magni
 
Cms, Content Management System. Sistema di gestione dei contenuti
Cms, Content Management System. Sistema di gestione dei contenutiCms, Content Management System. Sistema di gestione dei contenuti
Cms, Content Management System. Sistema di gestione dei contenutiGiulia S
 
Guida introduttiva al codice HTML
Guida introduttiva al codice HTMLGuida introduttiva al codice HTML
Guida introduttiva al codice HTMLEnrico Mainero
 
Wordpress - Primi passi | Mafaldida
Wordpress  - Primi passi | MafaldidaWordpress  - Primi passi | Mafaldida
Wordpress - Primi passi | MafaldidaGiulia Costa
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerMatteo Magni
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in ActionDotNetMarche
 
Introduzione a TypeScript
Introduzione a TypeScriptIntroduzione a TypeScript
Introduzione a TypeScriptSinergia Totale
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerMatteo Magni
 
Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...LucaGre
 
7. Applicazioni Web e CMS
7. Applicazioni Web e CMS7. Applicazioni Web e CMS
7. Applicazioni Web e CMSRoberto Polillo
 
... thinking about Microformats!
... thinking about Microformats!... thinking about Microformats!
... thinking about Microformats!Stefano Fago
 

Similar a Introduzione al web (2/2) - 18/19 (20)

5 - Introduzione al Web (2/2) - 16/17
5 - Introduzione al Web (2/2) - 16/175 - Introduzione al Web (2/2) - 16/17
5 - Introduzione al Web (2/2) - 16/17
 
Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner
 
Html e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesignerHtml e Css - 1 | WebMaster & WebDesigner
Html e Css - 1 | WebMaster & WebDesigner
 
Cms, Content Management System. Sistema di gestione dei contenuti
Cms, Content Management System. Sistema di gestione dei contenutiCms, Content Management System. Sistema di gestione dei contenuti
Cms, Content Management System. Sistema di gestione dei contenuti
 
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
 
Guida introduttiva al codice HTML
Guida introduttiva al codice HTMLGuida introduttiva al codice HTML
Guida introduttiva al codice HTML
 
Link. javascript ajax
  Link. javascript ajax  Link. javascript ajax
Link. javascript ajax
 
Wordpress - Primi passi | Mafaldida
Wordpress  - Primi passi | MafaldidaWordpress  - Primi passi | Mafaldida
Wordpress - Primi passi | Mafaldida
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesigner
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in Action
 
07 - Web apps e CMS
07 - Web apps e CMS07 - Web apps e CMS
07 - Web apps e CMS
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
Dot net framework 2
Dot net framework 2Dot net framework 2
Dot net framework 2
 
Introduzione a TypeScript
Introduzione a TypeScriptIntroduzione a TypeScript
Introduzione a TypeScript
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesigner
 
Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Ddive Xpage852
 
Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...
 
MyTask
MyTaskMyTask
MyTask
 
7. Applicazioni Web e CMS
7. Applicazioni Web e CMS7. Applicazioni Web e CMS
7. Applicazioni Web e CMS
 
... thinking about Microformats!
... thinking about Microformats!... thinking about Microformats!
... thinking about Microformats!
 

Más de Giuseppe Vizzari

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/21Giuseppe Vizzari
 
11 - Evoluzione del Web (19/20)
11 - Evoluzione del Web (19/20)11 - Evoluzione del Web (19/20)
11 - Evoluzione del Web (19/20)Giuseppe Vizzari
 
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)Giuseppe Vizzari
 
3 - Introduzione a Internet (2/2)
3 - Introduzione a Internet (2/2)3 - Introduzione a Internet (2/2)
3 - Introduzione a Internet (2/2)Giuseppe Vizzari
 
Intelligenza Artificiale e Realtà Virtuale
Intelligenza Artificiale e Realtà VirtualeIntelligenza Artificiale e Realtà Virtuale
Intelligenza Artificiale e Realtà VirtualeGiuseppe Vizzari
 
Modelli di business nel web
Modelli di business nel webModelli di business nel web
Modelli di business nel webGiuseppe Vizzari
 
Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Giuseppe Vizzari
 

Más de Giuseppe Vizzari (12)

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)
 
3 - Introduzione a Internet (2/2)
3 - Introduzione a Internet (2/2)3 - Introduzione a Internet (2/2)
3 - Introduzione a Internet (2/2)
 
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
 
Web feed e aggregatori
Web feed e aggregatoriWeb feed e aggregatori
Web feed e aggregatori
 
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
 
Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19
 

Último

Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxlorenzodemidio01
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................giorgiadeascaniis59
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxlorenzodemidio01
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxlorenzodemidio01
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.camillaorlando17
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaSalvatore Cianciabella
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxtecongo2007
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileNicola Rabbi
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....giorgiadeascaniis59
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxtecongo2007
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................giorgiadeascaniis59
 
Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxtecongo2007
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxlorenzodemidio01
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoyanmeng831
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxtecongo2007
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxlorenzodemidio01
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxlorenzodemidio01
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxlorenzodemidio01
 

Último (18)

Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.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.
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione Civica
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptx
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibile
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptx
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................
 
Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptx
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
 
Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceo
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptx
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptx
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptx
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
 

Introduzione al web (2/2) - 18/19

  • 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 2018-19
  • 2. Queste slides Queste slides fanno parte del corso “Strumenti e applicazioni del Web”. Il sito del corso, con il materiale completo, si trova in https://gvizzari.hopto.org/wp/. 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. Naming: URI, URL, URN 3 URI Uniform Resource Identifier URN Uniform Resource Name Specifica il nome della risorsa Esempio: (International Standard Book Number) URL Uniform Resource Locator Specifica l'indirizzo della risorsa
  • 5. Se non mettete l’URL completo… 5 rpolillo.it Web server Web server (pathname di default)browser Se ci sono vari siti sullo stesso server, Si usano varie tecniche per fornire il sito di default. La soluzione più elegante è quella di definire vari host virtuali, ciascuno con un proprio indirizzo IP. http://en.wikipedia.org/wiki/Virtual_hosting
  • 6. URL shortening • Gli URL tendono ad essere lunghi  servizi che accorciano gli URL • Esempio: http://www.rpolillo.it/index.php/2013/01/workshop-su-digital-heritage- levoluzione-della-memoria-1-feb-2012-in-bicocca/  http://bit.ly/1FKg3oN 6 Esempi: bit.ly tinyurl.com t.Co …. Statistiche d'accesso e altri servizi HTTP internet Browser Web server HTML HTML PUT GET Servizio di URL shortening
  • 7. 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! 7
  • 8. 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)
  • 9. Esempio 9 1.Bla bla bla 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
  • 12. Testo attivo Immagine attiva BottoneTab I link possono assumere diverse forme 12
  • 14. HTML: iframe 14 <iframe width="560" height="315" src="http://www.youtube.com/embed/qrO4YZeyl0I" frameborder="0" allowfullscreen></iframe>
  • 16. 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/ 16
  • 17. 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> …
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. Scripts (server side) 22 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
  • 23. WordPress, ad esempio... (1/2) • Gli utenti non scrivono pagina HTML, ma da qualche parte i dati delle pagine, degli utenti, dei commenti, dei contenuti multimediali, … devono essere memorizzati • Questo a destra è lo schema del DB relazionale di WordPress… • Non è rilevante per il tipico utente, sebbene sia potenzialmente molto utile, addirittura fondamentale per scrivere nuovi plugin • Non è importante conoscerlo a memoria… • D’altronde è necessario sapere che esiste e magari avere qualche rudimentale conoscenza di come è strutturato 23
  • 24. WordPress, ad esempio… (2/2) • La cartella principale dell’installazione di default di WordPress include diversi file PHP • In particolare, index.php è il template della pagina indice del blog, che riporta l’elenco dei post in ordine cronologico decrescente… • … non aprite il file index.php sperando di vedere direttamente il codice che effettua questa operazione: WordPress è molto complicato, internamente, e index.php è molto piccolo… ma richiama numerosi altri file https://www.optimizesmart.com/wordpress-ninja-15-minutes/
  • 25. Scripts (client side) 25 Script eseguito dal browser Può esserci anche un link allo script (quindi, si possono importare librerie di terze parti) Pagina trasferita al client
  • 26. WordPress, ad esempio… Posso dinamicamente, e senza avere un refresh complessivo della pagina, passare dalla statistica delle viste singole a quella del numero di utenti
  • 27. WordPress, ad esempio… Questo cambiamento implica un’interazione con il server, ma viene gestito dalla pagina attuale, in particolare da codice JavaScript
  • 28. Scripts (server side + client side) Script in linguaggio PHP eseguito dal server <html> <body> <?php echo "ciao" ?> <script> document.write(“ Pippo…”); </script> </body> </html> <html> <body> ciao <script> document.write(“ Pippo…”); </script> </body> </html> ciao Pippo… Pagina sul server Pagina trasferita al client Script eseguito dal browser sul client Praticamente ogni web application minimamente interessante oggi adotta questo genere di schema architetturale
  • 31. Lavoro individuale • 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? • In sintesi, quanti linguaggi dovrebbe conoscere un cosidetto “full stack developer” per essere davvero completo? Ripercorrete le slide e cercate di fare un elenco completo per quello che vi è stato detto… 31