Sito statico vs Sito Dinamico

70
Sito statico vs Sito dinamico Tecnologie del web Docenti: V. De Luca, F. Brunetta 1

description

 

Transcript of Sito statico vs Sito Dinamico

Page 1: Sito statico vs Sito Dinamico

Sito statico vs Sito dinamico

Tecnologie del web

Docenti: V. De Luca, F. Brunetta 1

Page 2: Sito statico vs Sito Dinamico

2

Progettazione di un sito

• Possibili scelte–Sito “tradizionale”: statico– [Sito statico ma con più interattività]–Sito dinamico

Docenti: V. De Luca, F. Brunetta

Page 3: Sito statico vs Sito Dinamico

Sito statico

Obiettivo: il browsing

Docenti: V. De Luca, F. Brunetta 3

Page 4: Sito statico vs Sito Dinamico

4

Cos’è un sito “statico”

• Metodo “tradizionale”• Composto da:

–File con informazioni (html, xhtml)–Oggetti multimediali (immagini, filmati, ecc.)–Altri file da pubblicare (PDF, ZIP, DOC.. ecc.)

Docenti: V. De Luca, F. Brunetta

Page 5: Sito statico vs Sito Dinamico

5

Perché si dice “statico”?

• Informazioni scritte direttamente in file “html”

• Rimangono immutate…• …fino a quando non modifichiamo a mano

il contenuto del file

Docenti: V. De Luca, F. Brunetta

Page 6: Sito statico vs Sito Dinamico

Docenti: V. De Luca, F. Brunetta 6

Page 7: Sito statico vs Sito Dinamico

7

Vantaggi di un sito “statico”• «Semplice» da creare:

– Editor “WYSIWYG”– (Anche editor di testo - conoscendo HTML)– Programmi di grafica – serve in ogni caso (anche nel caso di un

sito dinamico)• Non richiede capacità di programmazione (HTML e XHTML non

sono linguaggi di programmazione)• Ottimo per siti informativi, «semplici» ,personali, con scarso

aggiornamento

Docenti: V. De Luca, F. Brunetta

Page 8: Sito statico vs Sito Dinamico

8

Produrre e pubblicare sito statico

1. Produrre file html o xhtml su proprio computer (localmente) – sito locale

“sviluppo off-line” (file non sono pubblici)2. Trovare “ospitalità” su un server Web

1. Copiare file sul server Web – sito remoto• Spesso via FTP• Ora pubblici: http://indiri.zzo.it/...

Docenti: V. De Luca, F. Brunetta

Page 9: Sito statico vs Sito Dinamico

9

Linguaggi per siti statici

•HTML varie versioni!•XHTML (xml + html =xhtml)

Docenti: V. De Luca, F. Brunetta

Page 10: Sito statico vs Sito Dinamico

«Piccola Storia» dell’HTML

• «Inventato» da Tim Berners Lee• Ha «riscoperto» l’idea di ipertesto

(inventato negli anni 40) Tag per inserimento di collegamenti

ipertestuali (A) + attributo HREF• Basato su SGML (1986)

Docenti: V. De Luca, F. Brunetta 10

Page 11: Sito statico vs Sito Dinamico

Docenti: V. De Luca, F. Brunetta 11

Page 12: Sito statico vs Sito Dinamico

Prime versioni di html• Versione 1 – 1989.

– Limitata: compatibile con piattaforma NeXT, per file di testo

• HTML 2.0 – tra 1993 e 1994– Standardizzazione nov. 1995– http://www.ietf.org/rfc/rfc1866.txt– Nascono i primi browser la necessita di

interpretare questo nuovo linguaggio

Docenti: V. De Luca, F. Brunetta 12

Page 13: Sito statico vs Sito Dinamico

Versioni classiche di html• [Versione 3.0 - da 1993 a 1995

– Versione non formalizzata– Deriva da studi su HTML+ – Rimasta “Draft” - provvisoria]

• Versione 3.2 – 1996/997– Raccomandata da W3C dal 1997– Vera “sostituzione” della 2.0– Ottima formalizzazione

Docenti: V. De Luca, F. Brunetta 13

Page 14: Sito statico vs Sito Dinamico

Versioni evolute di html• Versione 4.0 e 4.01– 1996/1999

– 4.0: versione di lavoro (1998)– 4.01: raccomandazione W3C (1999)– 4.01 del 2000: standard

Docenti: V. De Luca, F. Brunetta 14

Page 15: Sito statico vs Sito Dinamico

XHTML 1.0 e 1.1

• Riformulazione di HTML 4.01 in chiave XML

Docenti: V. De Luca, F. Brunetta 15

Page 16: Sito statico vs Sito Dinamico

HTML 5

Docenti: V. De Luca, F. Brunetta

Fonte: http://creative-geeks.com/blog/wp-content/uploads/2011/01/HTML5__.jpg

16

Page 17: Sito statico vs Sito Dinamico

Il linguaggio HTML - Introduzione

• Hyper Text Markup Language• Linguaggio per scrivere testi “web” ipertestuali,

multimediali• Non è un “vero” linguaggio di programmazione

in quanto non contiene ad esempio meccanismi per compiere iterazioni, ecc

Docenti: V. De Luca, F. Brunetta 17

Page 18: Sito statico vs Sito Dinamico

Il linguaggio HTML- Linguaggio di markup dichiarativo

• Linguaggio di “MARKUP”:o “Descrive” un testo (non è dunque un linguaggio di

markup procedurale come LaTeX, ad esempio)o Identifica gli elementi essenziali (paragrafi,

intestazioni, tabelle, link ipertestuali… tutto)• Linguaggio non proprietario

1818

Docenti: V. De Luca, F. Brunetta

Page 19: Sito statico vs Sito Dinamico

Linguaggio HTML - 4• Un documento HTML è composto da:

– Testo “puro” (testo ASCII)

– Misto ad istruzioni Tag

19Docenti: V. De Luca, F. Brunetta

Page 20: Sito statico vs Sito Dinamico

HTML e i tags – 1 – classic!

• Due tipi di “tag”: • Semplici:

<ISTRUZIONE>• Ad apertura/chiusura:

<ISTRUZIONE>testo</ISTRUZIONE>

Docenti: V. De Luca, F. Brunetta 20

Page 21: Sito statico vs Sito Dinamico

HTML e i tags – 2 – classic!

• Esempio di tag semplice - Inserisce un “ritorno a capo” (break)

<br>• Esempio di tag apertura/chiusura (delimita

un paragrafo):<p>

Ciao!</p>

Docenti: V. De Luca, F. Brunetta 21

Page 22: Sito statico vs Sito Dinamico

HTML e i tags – 3 – classic!

• Spesso i tag sono più complessi e includono degli attributi:

<ISTRUZIONE attributo=“qualcosa”>

<ISTRUZIONE attributo1=“qualcosa”Attributo2=“altro”>testo</ISTRUZIONE>

Docenti: V. De Luca, F. Brunetta 22

Page 23: Sito statico vs Sito Dinamico

HTML e i tags – 4 – classic!

• Attributi a volte facoltativi, a volte indispensabili!

• Esempio:<img src=“casamia.jpg”>

• Il tag IMG (immagine) senza src (quale immagine?) non serve a nulla

Docenti: V. De Luca, F. Brunetta 23

Page 24: Sito statico vs Sito Dinamico

HTML e i tags – 5 – classic!

• Il tag “a” è uno dei più importanti• Di apertura/chiusura, inserisce un LINK• Attributo HREF è indispensabile:

<a href=“http://www.uniud.it”>UniUD<a>

Docenti: V. De Luca, F. Brunetta 24

Page 25: Sito statico vs Sito Dinamico

HTML classic- Esempio<html><title>Il mio documento</title><body><h1>Il mio documento di prova</h1><p>Cos&iacute; questo &egrave; il mio primo testo di prova. Premendo in <A href="http://www.uniud.it/">questo punto</A> potete visitare l'Universit&agrave; di Udine. <br><b>Questo testo viene visualizzato in neretto</b> mentre il testo che segue <i>viene visualizzato in corsivo</i>. <br><br>In questo punto <img src="immagini/disegno.gif"> viene visualizzato un disegno. </P></body> </html>

Docenti: V. De Luca, F. Brunetta 25

Page 26: Sito statico vs Sito Dinamico

HTML e XHTML

•Dopo HTML 4, html è sembrato insufficiente•Lavoro di “espansione” si è basato su XML: linguaggio per definire linguaggi•XML si basa su SGML: metalinguaggio per definire linguaggi che servono a definire linguaggi!!!

SGMLXML XHTML HTML 4.01

Docenti: V. De Luca, F. Brunetta 26

Page 27: Sito statico vs Sito Dinamico

XHTML 1.0 e 1.1

• Molto più formalizzato• Bisogna definire lo standard<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

• Usa tags html, estesi, modificati, più potenti

Docenti: V. De Luca, F. Brunetta 27

Page 28: Sito statico vs Sito Dinamico

XHTML 1.0 e 1.1

• XML (e quindi HTML) non ammettono tag “semplici”: ogni tag deve “aprire” e deve avere un tag di chiusura

• E allora che succede al povero “<BR>”?• Trucchetto:

<br />• Cosi anche lui “apre” e “chiude”

Docenti: V. De Luca, F. Brunetta 28

Page 29: Sito statico vs Sito Dinamico

Riferimenti utili

• http://www.westhost.com/blog/2011/09/23/the-history-of-web-design-infographic/

• http://www.html.it/guide/guida-html/• http://www.w3schools.com/tags/• http://en.wikipedia.org/wiki/HTML• http://it.wikipedia.org/wiki/XHTML

Docenti: V. De Luca, F. Brunetta 29

Page 30: Sito statico vs Sito Dinamico

30

Nel HEAD

• Titolo (TITLE)• Meta-tags (meta name=«keywords», ad

esempio) – ovvero informazioni sul documento stesso

• Link ai file di stili (CSS)

Docenti: V. De Luca, F. Brunetta

Page 31: Sito statico vs Sito Dinamico

31

Nel BODY

• Tutto il resto

Docenti: V. De Luca, F. Brunetta

Page 32: Sito statico vs Sito Dinamico

32

Pubblicazione di un sito WebTrovare il server giusto

Docenti: V. De Luca, F. Brunetta

Page 33: Sito statico vs Sito Dinamico

33

Il server • Sito pubblicato su un server

1. Proprio (gestito autonomamente) elasticità2. Ospitato (Hosting condiviso) Costi contenuti3. Virtuale (il server che non c’è ) costo limitato e

elasticità ma anche performance limitate4. Dedicato (Housing) efficienza

Docenti: V. De Luca, F. Brunetta

Page 34: Sito statico vs Sito Dinamico

Sito statico con elementi dinamici

Obiettivo: l’interattività

Docenti: V. De Luca, F. Brunetta 34

Page 35: Sito statico vs Sito Dinamico

35

Limiti dei siti statici

• Il contenuto del file html è sempre lo stesso

• Per modificarlo dobbiamo:– Modificare il file html– Pubblicarlo nuovamente sul server

• OK per informazioni che cambiano raramente

• MALE per informazioni da aggiornare ad ogni consultazione

Docenti: V. De Luca, F. Brunetta

Page 36: Sito statico vs Sito Dinamico

36

Limiti dei siti statici - 2

• Ad es.:Benvenuto utente, oggi è il 10/12/2006,

sono le ore 12.30

• Non possiamo aggiornare file html a mano ogni minuto!!!

Docenti: V. De Luca, F. Brunetta

Page 37: Sito statico vs Sito Dinamico

37

Come fare? Due approcci diversi

• Dobbiamo costringere computer a usare “intelligenza” per fare certe operazioni– Ad es: visualizzare data e ora correnti ad ogni

lettura di una pagina Web• Possibile? Sì! In due modi diversi:

– Approccio client-side– Approccio server-side

Docenti: V. De Luca, F. Brunetta

Page 38: Sito statico vs Sito Dinamico

Docenti: V. De Luca, F. Brunetta 38

Page 39: Sito statico vs Sito Dinamico

39

Approccio client-side - 1

• L’intelligenza risiede sul “browser”• Esistono speciali linguaggi di

programmazione “client-side”• Esempio: “Javascript”

Docenti: V. De Luca, F. Brunetta

Page 40: Sito statico vs Sito Dinamico

APPROCCIO CLIENT-SIDE - 2

http://www.qualcheserver.com/doc/datadioggi.htm

www.qualcheserver.com

/doc/datadioggi.htm

Html + JScript

Browser:Interpreta html,

js, visualizza testo

DOCENTI: V. DE LUCA, F. BRUNETTA 40

Page 41: Sito statico vs Sito Dinamico

41

Approccio client-side - 3

Implicazioni:• Nessuna modifica al comportamento del

server• Aggravio di operazioni sul browser

– Deve “supportare” il linguaggio– Deve riconoscerlo, interpretarlo, eseguirlo– PC deve “lavorare” di più

Docenti: V. De Luca, F. Brunetta

Page 42: Sito statico vs Sito Dinamico

42

Approccio client-side - 4

• (segue) Implicazioni:• Grossi problemi di sicurezza sul client:

– Sul nostro PC eseguiti programmi scritti da altri

– Potrebbero fare qualsiasi cosa (tipo: “cancella tutti i file di questo PC”)

• Soluzione: grosse limitazioni a possibilità di Javascript (no accesso a disco locale… ecc.)

Docenti: V. De Luca, F. Brunetta

Page 43: Sito statico vs Sito Dinamico

Javascript – linguaggio di scripting

• Cosa significa?– Il browser legge una riga, la interpreta,la

esegue, poi passa alla successiva e fa la stessa cosa , ecc

– Per identificare il codice di script si utilizza il tag <script>….</script>

43Docenti: V. De Luca, F. Brunetta

Page 44: Sito statico vs Sito Dinamico

MetodologiaLo script può essere inserito nella pagina in due

modi diversi:–Inserendo il codice nel documento (tipicamente nel HEAD

del documento - si può anche inserire nel BODY ma verrà eseguito dopo gli script del HEAD)

–Caricandolo da un file esterno (lo script – un file .js viene richiamato con l’attributo src del tag script (immaginate quando volete caricare un’immagine .jpg insieme alla pagina)

Il secondo metodo ha il vantaggio che lo script può essere scritto (con il Blocco Note ad esempio) una volta sola e richiamato ogni volta che serve

44Docenti: V. De Luca, F. Brunetta

Page 45: Sito statico vs Sito Dinamico

AJAX

• Asynchronous Javascript e XML• Insieme di tecniche di sviluppo per creare

siti web più interattivi e usabili (aumentando ad esempio la velocità di scaricamento)

• Usa come linguaggio di markup: HTML o XHTML (CSS per gli stili)

• XML come formato di scambio dei dati• Linguaggio Javascript

45Docenti: V. De Luca, F. Brunetta

Page 46: Sito statico vs Sito Dinamico

Flash• Adobe Flash è uno strumento per la creazione di

animazioni vettoriali• Viene molto usato per il web perché permette di

creare giochi o addirittura interi siti web multimediali (con immagini, audio, video, testo, ecc)

• Permette inoltre di creare animazioni interattive grazie alla presenza di un linguaggio di scripting (ActionScript)

• Nato nel 1996• L’estensione dei file flash è .swf (.flv)

46Docenti: V. De Luca, F. Brunetta

Page 47: Sito statico vs Sito Dinamico

Silverlight

• Sviluppato dalla Microsoft• Ambiente che permette di includere in un

sito web applicazioni multimediali interattive

• Si propone come alternativa a Flash (Adobe)

47Docenti: V. De Luca, F. Brunetta

Page 48: Sito statico vs Sito Dinamico

48

Approccio server-side - 1• L’intelligenza risiede sul server• Esistono appositi linguaggi di programmazione server-

side• Esempio: PHP, Perl, Python, ASP.NET, ecc

Docenti: V. De Luca, F. Brunetta

Page 49: Sito statico vs Sito Dinamico

49

Approccio server-side - 2• I I comandi “PHP” vengono inseriti nei documenti html

– Insieme al testo pubblicato– Insieme ai “tag” html

• I server:– Devono conoscere questo linguaggio– Ne identificano i comandi– Li eseguono e emettono messaggi, informazioni, ecc.

Docenti: V. De Luca, F. Brunetta

Page 50: Sito statico vs Sito Dinamico

Docenti: V. De Luca, F. Brunetta 50

Approccio server-side - 4

• Esempio:

Testo html “statico”<html><head><title>Benvenuto</title></head><body><h1> Benvenuto caro amico, oggi è: giovedì 13 luglio 2006, 10:23<h1></body></html>

Testo html con PHP <html><head><title>Benvenuto</title></head><body><h1> Benvenuto caro amico, oggi è: <?phpecho date("l j-m-Y");?><h1></body></html>

Page 51: Sito statico vs Sito Dinamico

APPROCCIO SERVER-SIDE - 4

http://www.qualcheserver.com/doc/datadioggi.php

www.qualcheserver.com

/doc/datadioggi.php

Html + PHP

ServerChiama interp.

php, che esegue e emette output

PHP

HTML

testo

DOCENTI: V. DE LUCA, F. BRUNETTA 51

Page 52: Sito statico vs Sito Dinamico

52

Approccio server-side - 5

Implicazioni:• Operazioni del server Web molto più complesse!

– Necessita di programma interprete PHP– Deve riconoscere istruzioni PHP, passarle a

interprete, inserire le risposte nel testo, passare il tutto al browser

– Maggior “carico” per il computer-server!

Docenti: V. De Luca, F. Brunetta

Page 53: Sito statico vs Sito Dinamico

53

Approccio server-side - 6

(segue) Implicazioni:• Il Browser non deve fare nulla• Riceve dal server solo html – non si “accorge” della presenza di

PHP• Computer del client: molto più scarico• Client: nessun problema di sicurezza• Server: maggiori rischi (deve proteggersi)• Pagine visibili solo tramite server

Docenti: V. De Luca, F. Brunetta

Page 54: Sito statico vs Sito Dinamico

54

Approccio server-side - 7

Applicazioni:• Meccanismo molto potente• Linguaggio Server-side ha accesso completo a molte

risorse del server– Database di rete– Spazio disco del server

• Può ad es. registrare su DB i dati di un form!

Docenti: V. De Luca, F. Brunetta

Page 55: Sito statico vs Sito Dinamico

55

Approccio server-side - 8• Cosa dobbiamo capire?• esistono linguaggi diversi e applicazioni diverse!• queste applicazioni hanno come obiettivo di

raccogliere, gestire e mettere a disposizione dati complessi• Quasi impossibile con client-side, complesso ma possibile

con server-side (web server+php+database+….)• Ad es, Iscrizione ad un convegno necessita di1) Diffondere dati del convegno (data, location, ecc)2) Consentire la registrazione dei partecipanti (nome, cognome,

ecc)3) Gestire la logistica (quanti iscritti, quanti posti, ecc)

Docenti: V. De Luca, F. Brunetta

Page 56: Sito statico vs Sito Dinamico

PHP

• PHP Hypertext PreProcessor• Linguaggio di scripting interpretato• Linguaggio lato server• Per la realizzazione di pagine web dinamiche• Nato nel 1994

56Docenti: V. De Luca, F. Brunetta

Page 57: Sito statico vs Sito Dinamico

ASP• Linguaggio lato server simile a PHP• Sviluppato da Microsoft• Le ASP (Active Server Pages) sono pagine Web

contenenti degli script che vengono eseguiti dal server• Funziona su Web server Microsoft Internet Information

Services (IIS)

57Docenti: V. De Luca, F. Brunetta

Page 58: Sito statico vs Sito Dinamico

Siti dinamici

• Un’applicazione che consente l’interazione tra l’utente e il server

• Un esempio: il Content Management System (CMS)

58Docenti: V. De Luca, F. Brunetta

Page 59: Sito statico vs Sito Dinamico

59

Sviluppo con editor WYSIWYG• Va male quando:

– Azienda/ente grandi con molti pubblicatori– Modello decentrato: ogni “ufficio” deve aggiornare sue

informazioni Implica:

– Tante copie stesso editor– Competenze informatiche/html dei pubblicatori– Difficoltà coordinamento – Ogni singolo file contiene informazioni e grafica

Docenti: V. De Luca, F. Brunetta

Page 60: Sito statico vs Sito Dinamico

60

CMS - 1• CMS è dispositivo software che:

–Facilita organizzazione e produzione collaborativa di contenuti (documenti, ecc.)

–Utilissimo per pubblicazione siti web:• Web Content Management Systems

• PHP based: Drupal, WordPress, Joomla, Typo3, ecc

• Python based: Zope-Plone. Magento. ecc

Docenti: V. De Luca, F. Brunetta

Page 61: Sito statico vs Sito Dinamico

61

CMS - 2• CMS è un sito web “dinamico”

– Risiede sul server

• Separa gestione dei contenuti dalla presentazione (“come” e “dove”)

• Consente di catalogare documenti in base a loro caratteristiche

• Consente di definire “a priori” aspetto grafico del sito

Docenti: V. De Luca, F. Brunetta

Page 62: Sito statico vs Sito Dinamico

62

CMS - 3• Pubblicatori

–non devono usare editor off-line–Pubblicano direttamente sul Web in ambiente

controllato–Non devono conoscere Editor o HTML!–Gestore decide a priori “dove” e “come”

contenuto viene pubblicato!

Docenti: V. De Luca, F. Brunetta

Page 63: Sito statico vs Sito Dinamico

63

CMS - 4• Il gestore:

–Controlla l’aspetto grafico e strutturale del sito–Decide “come” il contenuto viene presentato–Decide “chi” può pubblicare “cosa”–Accetta o meno documenti pubblicati

• Gestisce il “workflow”: i “passi” di validazione di ogni singolo documento

–Gestice il contenuto (cancella, modifica, ecc.)–Amplia le funzionalità del sito

Docenti: V. De Luca, F. Brunetta

Page 64: Sito statico vs Sito Dinamico

64

CMS – 5 – vantaggi• Facilitata

–la pubblicazione collaborativa / decentrata delle informazioni

–il controllo centralizzato degli aspetti strutturali del sito

Docenti: V. De Luca, F. Brunetta

Page 65: Sito statico vs Sito Dinamico

65

CMS – 6• Un CMS è applicazione “server-side”• Richiede linguaggi “server-side”, ad es.

come:–PHP (Usato da Drupal, WordPress)–Python (usato da Plone)–Oppure un programma “dedicato”

• Sfrutta le risorse del server

Docenti: V. De Luca, F. Brunetta

Page 66: Sito statico vs Sito Dinamico

66

CMS – 7• CMS “proprietari”:

–Applicazioni vere e proprie–Spesso potenti e costose–A volte piccole… e costose

• CMS “OpenSource”:–Gratuite–Spesso “leggere”–Richiedono frequente manutenzione software

Docenti: V. De Luca, F. Brunetta

Page 67: Sito statico vs Sito Dinamico

APPROCCIO M

ISTO:

Dinamico se

rver-s

ide e client-

side

•OBIETTIVO: L

E PRESTAZIONI (e

la bell

ezza)

Docenti: V. De Luca, F. Brunetta 67

Page 68: Sito statico vs Sito Dinamico

I CMS interrogano troppo il server

• Un CMS in PHP deve “chiamare” il server ogni volta• A volte serve… a volte no!• Ad esempio: se in una pagina cambiano le “news” – basta

caricare solo le (nuove) news, non tutta la pagina!• Approccio misto:• Gestire le informazioni con un CMS• Inserire nelle pagine codice Javascript che interroga il server

solo sui dati necessari• Ad esempio: ogni 5 minuti ricarica e visualizza SOLO le ultime

news;• Oppure: quando l’utente chiede di cambiare foto di uno

slideshow, carica solo la nuova foto e non tutta la pagina!

Docenti: V. De Luca, F. Brunetta 68

Page 69: Sito statico vs Sito Dinamico

AJAX & JQUERY

• Jquery: libreria che semplifica molto la vita (ai programmatori, poverini! )

• Usa AJAX per effetti grafici, accesso ai database, ecc.

• Slideshow – effetti su immagini – caricamenti “graduali”… tante cose!

Docenti: V. De Luca, F. Brunetta 69

Page 70: Sito statico vs Sito Dinamico

HTML 5 – la rivoluzione• Nuova versione ancora “Release Candidate”. • Nuovi tag “comuni” (header, footer, nav)• Maggiori dettagli semantici microdata• Vera e propria piattaforma di sviluppo evoluta:

– Ottimizzata per “mobile” – per accesso a devices – per uso storage – per accesso ai database – per eolocalizzazione - per migliori prestazioni (web workers)

• Supporto multimedia, grafica e 3d

• MA:– Standard ancora non definito– Supporto dei browser ancora limitato

http://www.html5today.it/tutorial/che-cos-html5

Docenti: V. De Luca, F. Brunetta 70