Tpsit

Page 1

HTTP giovedì 11 giugno 2015

17.26

L'HyperText Transfer Protocol (HTTP) è usato come principale sistema per la trasmissione d'informazioni sul web ovvero in un'architettura tipica client-server. Le specifiche del protocollo sono gestite dal W3C. Un server HTTP generalmente resta in ascolto delle richieste dei client sulla porta 80 usando il protocollo TCP a livello di trasporto. L'HTTP funziona su un meccanismo richiesta/risposta (client/server): il client esegue una richiesta e il server restituisce la risposta. Nell'uso comune il client corrisponde al browser ed il server al sito web. Vi sono quindi due tipi di messaggi HTTP: messaggi richiesta e messaggi risposta. HTTP differisce da altri protocolli di livello 7 come FTP, per il fatto che le connessioni vengono generalmente chiuse una volta che una particolare richiesta (o una serie di richieste correlate) è stata soddisfatta. Questo comportamento rende il protocollo HTTP ideale per il World Wide Web, in cui le pagine molto spesso contengono dei collegamenti (link) a pagine ospitate da altri server diminuendo così il numero di connessioni attive limitandole a quelle effettivamente necessarie con aumento quindi di efficienza (minor carico e occupazione) sia sul client che sul server. Talvolta però pone problemi agli sviluppatori di contenuti web, perché la natura senza stato (stateless) della sessione di navigazione costringe ad utilizzare dei metodi alternativi tipicamente basati sui cookie- per conservare lo stato dell'utente. Il messaggio di richiesta è composto di tre parti: • riga di richiesta (request line); • sezione header (informazioni aggiuntive); • body (corpo del messaggio).

La riga di richiesta è composta da metodo, URI e versione del protocollo. Il metodo di richiesta,

• • • • • • • •

per la versione 1.1, può essere uno dei seguenti: GET POST HEAD PUT DELETE TRACE OPTIONS CONNECT I metodi HTTP più comuni sono GET, HEAD e POST. Il metodo GET è usato per ottenere il contenuto della risorsa indicata come URI (come può essere il contenuto di una pagina HTML). HEAD è analogo a GET, ma restituisce solo i campi dell'header, ad esempio per verificare la data di modifica del file. Una richiesta con metodo HEAD non prevede l'uso del body. Il metodo POST è usato di norma per inviare informazioni al server (ad esempio i dati di un form). In questo caso l'URI indica che cosa si sta inviando e il body ne indica il contenuto. Gli header di richiesta più comuni sono: HTTP Pagina 1


Gli header di richiesta più comuni sono: Host: nome del server a cui si riferisce l'URL. È obbligatorio nelle richieste conformi HTTP/1.1 perché permette l'uso dei virtual host basati sui nomi. User-Agent: identificazione del tipo di client: tipo browser, produttore, versione...

GET /wiki.com/Pagina_principale HTTP/1.1 Connection: Keep-Alive User-Agent: Mozilla/5.0 (compatible; Konqueror/3.2; Linux) (KHTML, like Gecko) Accept: text/html, image/jpeg, image/png, text/*, image/*, */* Accept-Encoding: x-gzip, x-deflate, gzip, deflate, identity Accept-Charset: iso-8859-1, utf-8;q=0.5, *;q=0.5 Accept-Language: en Host: it.wikipedia.org (la richiesta deve terminare con una riga vuota, cioè con due "a capo" consecutivi)

Risposta: HTTP/1.0 200 OK Date: Mon, 28 Jun 2004 10:47:31 GMT Server: Apache/1.3.29 (Unix) PHP/4.3.4 X-Powered-By: PHP/4.3.4 Vary: Accept-Encoding,Cookie Cache-Control: private, s-maxage=0, max-age=0, must-revalidate Content-Language: it Content-Type: text/html; charset=utf-8 Age: 7673 X-Cache: HIT from wikipedia.org Connection: close

HTTP Pagina 2


FTP - Generale martedì 27 gennaio 2015

18.32

Che cos'è l'FTP? File Transfer Protocol (FTP) (protocollo di trasferimento file), in informatica e nelle telecomunicazioni, è un protocollo per la trasmissione di dati tra host basato su TCP.

Dove:

PI (protocol interpreter) è l'interprete del protocollo, utilizzato da client (User-PI) e server (Server-PI) per lo scambio di comandi e risposte. In gergo comune ci si riferisce ad esso come "canale comandi". DTP (data transfer process) è il processo di trasferimento dati, utilizzato da client (User-DTP) e server (Server-DTP) per lo scambio di dati. In gergo comune ci si riferisce ad esso come "canale dati".

Funzionamento generale FTP, a differenza di altri protocolli come per esempio HTTP, utilizza due connessioni separate per gestire comandi e dati. Un server FTP generalmente rimane in ascolto sulla porta 21 TCP a cui si connette il client. La connessione da parte del client determina l 'inizializzazione del canale comandi attraverso il quale client e server si scambiano comandi e risposte. Lo scambio effettivo di dati (come pe r esempio un file) richiede l'apertura del canale dati, che può essere di due tipi. In un canale dati di tipo attivo il client apre una porta solitamente casuale, tramite il canale comandi rende noto il numero di tale porta al server e attende che si connetta. Una volta che il server ha attivato la connessione dati al client FTP, quest'ultimo effettu a il binding della porta sorgente alla porta 20 del server FTP.

In un canale dati di tipo passivo il server apre una porta solitamente casuale (superiore alla 1023), tramite il canale comandi rende noto il numero di tale porta al client e attende che si connetta. A tale scopo possono venire impiegati i comandi PASV o EPSV, a seco nda del protocollo di rete utilizzato. Un server FTP offre svariate funzioni che permettono al client di interagire con il suo filesystem e i file che lo popolano, tra cui: Download/upload di file. Resume di trasferimenti interrotti. Rimozione e rinomina di file. Creazione di directory. Navigazione tra directory. FTP fornisce inoltre un sistema di autenticazione in chiaro (non criptato) degli accessi. Il client che si connette potrebbe dover fornire delle credenziali a seconda delle quali gli saranno assegnati determinati privilegi per poter operare sul filesystem. L'autenticazi one cosiddetta "anonima" prevede che il client non specifichi nessuna password di accesso e che lo stesso abbia privilegi che sono generalme nte di "sola lettura".

FTP Pagina 3


FTP - Comandi martedì 27 gennaio 2015

19.12

Lista dei comandi definiti nella RFC-959.

Nome

Comando

Parametri

Descrizione

Connect

FTP

Change to parent directory

CDUP

Change working directory

CWD

<pat hname>

Cambia directory corrente.

List

LI ST

<pat hname>

Lista il contenuto di una directory o le proprietà di un singolo file.

Make directory

MKD

<pat hname>

Crea directory.

Password

PASS

<pas s wor d>

Specifica la password dell'utente.

Passive

PASV

Data port

PORT

ftp://[<user>[:<password>]@]<host>[:<port>]/<url-path> Va alla parent directory.

Inizializza connessione dati passiva. <host -port >

Inizializza connessione dati attiva.

Print working PWD

Ritorna nome della directory corrente.

directory Logout

QUI T

Retrieve

RETR

<pat hname>

Preleva file (da server a client).

Remove directory

RMD

<pat hname>

Rimuove directory.

Store

STOR

<pat hname>

Spedisce un file (da client a server).

Representati on type

TYPE

<t ype>

Imposta la modalità di trasferimento (A=ASCI I , E=EBCDI C, I =Bi nar y , L=Local ). Il valore di default è A. EBCDIC e Local sono raramente usati (esempio: unicamente su sistemi mainframe).

User Name

USER

<user name>

Specifica nome utente.

Disconnette. Se un trasferimento è ancora in corso attende che termini prima di chiudere la sessione.

Codici di risposta • 1xx: Risposta positiva preliminare. L'azione richiesta è iniziata ma ci sarà un'altra risposta ad indicare che essa è effettivamente completata. • 2xx: Risposta positiva definitiva. L'azione richiesta è completata. Il client può ora mandare altri comandi. • 3xx: Risposta positiva intermedia. Il comando è stato accettato ma è necessario mandarne un secondo affinché la richiesta sia completata definitivamente. • 4xx: Risposta negativa temporanea. Il comando non è andato a buon fine ma potrebbe funzionare in un secondo momento. • 5xx: Risposta negativa definitiva. Il comando non è andato a buon fine e il client non dovrebbe più ripeterlo. • x0x: Errore di sintassi. • x1x: Risposta ad una richiesta informativa. • x2x: Risposta relativa alla connessione. • x3x: Risposta relativa all'account e/o ai permessi. • x4x: Non meglio specificato. • x5x: Risposta relativa al file-system. 220:

Servizio pronto per un nuovo utente

221:

Il servizio sta chiudendo la connessione di controllo

227:

Entrando in modalità Passiva

230:

Utente connesso/disconnesso

331:

Username corretto, inserire la password

332:

Necessità di un account per connettersi

350:

In attesa di più informazioni per l'azione richiesta sul file

426:

Connessione interrotta, trasferimento annullato

430:

Username o Password non corretti

FTP Pagina 4


430:

Username o Password non corretti

501:

Errore nella sintassi del parametro o dell'argomento

530:

Non connesso

550:

Azione non eseguita, file non disponibile

FTP Pagina 5


FTP - Automi a Stati Finiti giovedì 29 gennaio 2015

22.35

Un automa a stati finiti (ASF) o macchina a stati finiti o FSA (dall'inglese Finite State Automata) è un modello che permette di descrivere con precisione e in maniera formale il comportamento di molti sistemi. Grazie alla sua semplicità e chiarezza questo tipo di modello è molto diffuso nell'ingegneria e nelle scienze, soprattutto nel campo dell'informatica e della ricerca operativa. Un automa a stati finiti può essere utilizzato sia per modellare un sistema esistente che per modellare un nuovo sistema formale in grado di risolvere alcuni problemi esistenti. A quest'ultima categoria appartengono i cosiddetti riconoscitori di linguaggi e i traduttori. La rappresentazione grafica di un automa a stati finiti è il grafo. Nello specifico, con gli automi a stati finiti, si possono modellare tutti i sistemi che possiedono le seguenti caratteristiche:

Dinamicità: caratteristica di evolvere nel tempo passando da uno stato ad un altro. Discretezza: caratteristica che indica che le variabili d'ingresso e gli stati del sistema da modellare possono essere espressi con valori discreti. Simboli finiti: caratteristica che determina che il numero di simboli di ingresso e di stati sia rappresentabile da un numero finito. Dal punto di vista pratico, il concetto di automa a stati finiti equivale a costruire un piccolo dispositivo che mediante una testina legge una stringa di input su un nastro e la elabora, facendo uso di un meccanismo molto semplice di calcolo e di una memoria limitata. L'esame della stringa avviene un carattere alla volta attraverso precisi passi computazionali che comportano l'avanzamento della testina. In sostanza un ASF è un caso particolare di macchina di Turing, utilizzato per l'elaborazione di quei linguaggi che nelle Grammatiche di Chomsky sono definiti di Tipo 3 o Regolari. Distinguiamo due tipi di automi a stati finiti: gli automi a stati finiti deterministici (ASFD) e gli automi a stati finiti non deterministici ASFND che si contraddistinguono per la loro differente potenza espressiva. La differenza tra i due tipi di automi (già espressa dalle definizioni formali) consiste nel fatto che nei primi, in qualunque stato ci si trovi, per qualsiasi input, esisterà una ed una sola transizione, mentre nei secondi almeno uno stato presenta più di una possibile computazione per determinati caratteri in ingresso. Possiamo rappresentare gli automi a stati finiti con una tabella (tabella di transizione) o equivalentemente con una matrice (matrice di transizione). Alle righe associamo gli stati e alle colonne i simboli in input. Gli elementi della matrice rappresentano il risultato dell'applicazione della funzione di transizione. \

0

1

s0

s2

s1

s1

s2

s1

s2

s2

s1

Un'altra rappresentazione molto usata è costituita dal diagramma degli stati, o grafo di transizione, che consiste nel rappresentare l'automa mediante un grafo orientato: i nodi rappresentano gli stati e gli archi le transizioni, etichettati col simbolo di input che genera la transizione. Si può marcare lo stato iniziale con un arco entrante dal nulla e gli stati finali con un doppio circolo. A queste rappresentazioni va aggiunta la funzione di uscita corrispondente. I diagrammi di stato saranno così modificati, come si può vedere per le macchine di Mealy e di Moore.

FTP Pagina 6


HTML - Generale venerdì 17 aprile 2015

17:21

L'HyperText Markup Language (HTML) in informatica è il linguaggio di markup solitamente usato per la formattazione e impaginazione di documenti ipertestuali disponibili nel World Wide Web sotto forma di pagine web. L'HTML è un linguaggio di formattazione che descrive le modalità di impaginazione o visualizzazione grafica (layout) del contenuto, testuale e non, di una pagina web attraverso tag di formattazione. Sebbene l'HTML supporti l'inserimento di script e oggetti esterni quali immagini o filmati, non è un linguaggio di programmazione: non prevedendo alcuna definizione di variabili, strutture dati, funzioni o strutture di controllo che possano realizzare programmi, il suo codice è in grado soltanto di strutturare e decorare dati testuali. Il linguaggio HTML, o la sua variante XHTML, ha come scopo quello di gestire i contenuti associandone o specificandone allo stesso tempo la struttura grafica (layout) all'interno della pagina web da realizzare grazie all'utilizzo di tag diversi. Ogni tag (ad esempio <h1> o <p>) specifica un diverso ruolo dei contenuti che esso contrassegna (quindi il tag <h1> definirà un'importanza maggiore del tag <p>). La formattazione consiste nell'inserimento nel testo di marcatori o etichette, detti tag, che descrivono caratteristiche come la funzione, il colore, le dimensioni, la posizione relativa all'interno della pagina. I browser che leggono il codice mostrano all'utente formattazioni predefinite per ogni tag che incontrano (così ad esempio i contenuti marcati con il tag <h1> avranno carattere 18pt e i contenuti marcati da <p> avranno carattere 12pt). Tuttavia questa formattazione è completamente sotto il controllo dell'utente, che può modificarla nelle Impostazioni del suo browser. Quando un documento ipertestuale scritto in HTML è memorizzato in un file la sua estensione è tipicamente .html o .htm. I documenti HTML vengono immagazzinati sui dischi rigidi di macchine elaboratrici (computer-server) costantemente collegate e connesse alla rete Internet. Su queste macchine è installato un software specifico (web server) che si occupa di produrre e inviare i documenti ai browser degli utenti che ne fanno richiesta usando il protocollo HTTP per il trasferimento dati. Spesso il documento HTML viene generato del tutto o parzialmente tramite un codice eseguibile residente sul server Internet (elaborazione lato server) in grado di interagire con altre applicazioni presenti sul server stesso, come per esempio un database, e inviare poi al browser il risultato finale, realizzando le cosiddette pagine web dinamiche con cui un utente può compiere operazioni interattive avanzate (ad es. filtrare gli articoli all'interno di un catalogo on-line, inviare e registrare dati, fare login ecc.). È il caso di documenti scritti in linguaggi come ASP, PHP, Perl o Java. In altri casi invece alcuni tipi di elaborazione sono operati lato client con linguaggi come Javascript.

Html Pagina 7


Struttura di un documento HTML venerdì 17 aprile 2015

17:30

Un documento HTML comincia con una dichiarazione del tipo di documento, una breve stringa che indica in quale sintassi e relativa versione esso sia scritto, per esempio HTML 4.0 Strict. Tale informazione è necessaria al browser per identificare le regole di interpretazione e visualizzazione appropriate per lo specifico documento, ed è per questa ragione che la dichiarazione debba precedere il documento vero e proprio. Ogni versione del linguaggio HTML precedenti alla quinta, ovvero fino ad HTML 4.01 o XHTML 1.1, possiede una sintassi formalmente definita da una definizione del tipo di documento (DTD) che, pubblicata sul web dal W3C, indica, per ogni versione, quali elementi, attributi ed entità possano o debbano essere utilizzati, e in quale maniera; pertanto in questi casi la dichiarazione del tipo di documento deve (può, nel caso delle varianti XML) comprendere anche l'URL di tale risorsa. La quinta versione di HTML, invece, non possiede alcuna DTD, pertanto in questi casi la dichiarazione iniziale indica la mera dicitura "HTML". Dopo la dichiarazione del tipo di documento, il documento HTML presenta una struttura ad albero annidato, composta da sezioni delimitate da tag opportuni che al loro interno contengono a loro volta sottosezioni più piccole, sempre delimitate da tag. La struttura più esterna è quella che delimita l'intero documento, eccetto la DTD, ed è compresa tra i tag <html> e </html>. All'interno dei tag <html> lo standard prevede sempre la definizione di due sezioni ben distinte e disposte in sequenza ordinata: la sezione di intestazione o header, delimitata tra i tag <head> e </head>, che contiene informazioni di controllo normalmente non visualizzate dal browser, con l'eccezione di alcuni elementi la sezione del corpo o body, delimitata tra i tag <body> e </body>, che contiene la parte informativa vera e propria, ossia il testo, le immagini e i collegamenti che costituiscono la parte visualizzata dal browser. Al di sotto di questa suddivisione generale, lo standard non prevede particolari obblighi per quanto riguarda l'ordine e il posizionamento delle ulteriori sottosezioni all'interno dell'header o del body, a parte l'indicazione del rispetto dei corretti annidamenti (le sottosezioni non si devono sovrapporre, ossia ogni sottosezione deve essere chiusa prima di iniziare la sottosezione successiva), lasciando così completa libertà allo sviluppatore o al progettista per quanto riguarda la strutturazione e l'organizzazione successive. Tag della head[modifica | modifica wikitesto] I tag utilizzati nella sezione head sono tipicamente di tipo diverso da quelli utilizzati nella sezione body, essendo destinati a scopi differenti. I tag utilizzati nella sezione head normalmente non vengono visualizzati dal browser ma servono come informazioni di controllo e di servizio quali: metadata per convogliare informazioni utili ad applicazioni esterne (es. motori di ricerca) o al browser (es. codifica dei caratteri, utile per la visualizzazione di alfabeti non latini) metadata di tipo http-equiv per controllare informazioni aggiuntive nel protocollo HTTP collegamenti verso file di servizio esterni (CSS, script, icone visualizzabili nella barra degli indirizzi del browser) inserimento di script (codice eseguibile) utilizzati dal documento informazioni di stile (CSS locali) Html Pagina 8


informazioni di stile (CSS locali) il titolo associato alla pagina e visualizzato nella finestra principale del browser Tag del body[modifica | modifica wikitesto] All'interno della sezione di body, che racchiude la parte visualizzabile del documento, si utilizzano i tag specifici previsti per la formattazione dei contenuti accessibili all'utente finale, ossia per il controllo di: intestazioni (titoli di capitoli, di paragrafi eccetera) strutture di testo (testo indentato, paragrafi, eccetera) aspetto del testo (grassetto, corsivo, eccetera) elenchi e liste (numerate, generiche, di definizione) tabelle moduli elettronici (campi compilabili dall'utente, campi selezionabili, menu a tendina, pulsanti eccetera) collegamenti ipertestuali e ancore layout generico del documento inserimento di immagini inserimento di contenuti multimediali (audio, video, animazioni eccetera) inserimento di contenuti interattivi (script, applicazioni esterne) Tra quelli elencati sopra, il tag <a> è quello che gioca un ruolo chiave in quanto descrive un collegamento (o link) a un altro documento ipertestuale consentendo, con un click del mouse o con un'operazione da tastiera, di abbandonare la pagina o il sito che si sta visualizzando e caricare quella indicata dal link, realizzando cosÏ la funzione di navigazione tipica dell'uso di Internet.

Html Pagina 9


CSS - Generale venerdì 17 aprile 2015

17:33

Il CSS (Cascading Style Sheets, in italiano fogli di stile), in informatica, è un linguaggio usato per definire la formattazione di documenti HTML, XHTML e XML ad esempio i siti web e relative pagine web. L'introduzione del CSS si è resa necessaria per separare i contenuti dalla formattazione e permettere una programmazione più chiara e facile da utilizzare, sia per gli autori delle pagine HTML che per gli utenti, garantendo contemporaneamente anche il riuso di codice ed una sua più facile manutenibilità. Nel 1996 il W3C emanò le specifiche CSS 1. I CSS 1 erano un interessante sistema per separare contenuto da formattazione. La base di questo linguaggio, infatti, consisteva nel fatto che il contenuto sarebbe stato sempre definito dal codice (X)HTML, mentre la formattazione si sarebbe trasferita su un codice completamente separato, il CSS appunto. I richiami tra i due codici venivano effettuati tramite due particolari attributi: class e ID. Queste specifiche: 1. Erano un'efficace soluzione al primo problema (escludendo la questione del tag <table>) perché riducevano notevolmente le dimensioni delle pagine. 2. Risolvevano il secondo in modo parziale perché consentivano al codice (X)HTML di ritornare in gran parte semplice ed essenziale, ma presentavano qualche mancanza che costringeva a ricorrere ai tag HTML. 3. Non prendevano però in considerazione il terzo, dato che nel 1996 i PDA (i palmari) erano scarsamente diffusi.

CSS1 I CSS 1 sviluppavano un'idea semplice ma efficace, ma nonostante le loro grandi potenzialità non ebbero successo a causa della mancanza di browser in grado di supportarli.

CSS2 I CSS 2 sono la naturale evoluzione dei CSS 1 ed offrono potenti soluzioni per risolvere soprattutto il terzo problema, con la possibilità di creare fogli di stile separati per i dispositivi portatili. Anche il secondo problema è ormai pienamente risolvibile, scrivendo una pagina (X)HTML esclusivamente indirizzata alla struttura e ai contenuti e manovrandola poi esclusivamente con i CSS per impaginarla. Con la comparsa di Internet Explorer 5, di Firefox e di Opera 7, i CSS 2 hanno potuto avvalersi di browser in grado di interpretarli e sono quindi entrati a far parte del codice di molti siti web.

CSS3 I CSS3 dovrebbero presentare soluzioni per la correzione di alcuni bug di interpretazione di Internet Explorer[senza fonte], migliorie nella gestione degli sfondi e una soluzione per realizzare i bordi arrotondati la cui realizzazione affligge i webdesigner da tempo. HTML e CSS3 costituiscono un linguaggio turing completo, condizione sufficiente per un linguaggio per essere considerato un linguaggio di programmazione.

Css Pagina 10


Codice venerdì 17 aprile 2015

17:47

L'inserimento di codice CSS nelle pagine web può essere effettuato in tre modi diversi: Inserendo nel tag <head> della pagina in codice HTML un collegamento ad un foglio di stile esterno, cioè un file contrassegnato dall'estensione .css come negli esempi seguenti, tramite il tag link o tramite la direttiva import, che può essere utilizzata anche negli stessi file .css per collegare più file tra loro: <html> <head> <title>Esempio</title> <link rel="stylesheet" type="text/css" href="foglio_di_stile.css"/> </head> oppure <html> <head> <title>Esempio</title> <style type="text/css"> @import url(foglio_di_stile.css); </style> </head> questa soluzione garantisce il massimo riuso di codice possibile potendo essere richiamato in ciascuna delle pagine web HTML desiderate. Inserendo, sempre all'interno dell'<head> tra gli specifici tag <style> e </style> le dichiarazioni css. <html> <head> <title>Esempio</title> <style type="text/css"> codice css </style> </head> Questa soluzione garantisce un minor riuso di codice rispetto al precedente potendo essere utilizzato solo all'interno della pagina HTML in cui è dichiarato. In linea all'interno degli elementi <tag style="dichiarazioni CSS">...</tag> Questa soluzione garantisce un riuso di codice ancora minore rispetto al precedente. Le regole CSS Il codice CSS da inserire o referenziare è strutturato sotto forma di una o più regole ovvero istruzioni di tipo proprietà : valore che vengono applicate dal browser in fase di rendering agli elementi HTML interessati opportunamente specificati tramite un selettore, il tutto strutturato secondo il seguente schema sintattico (gli spazi sono tutti facoltativi): selettore{ proprietà1:valore1; proprietà2:valore2,valore3; } Gli elementi sono illustrati di seguito.

Selettori Css Pagina 11


Selettori

Selettori di tipo I selettori di tipo applicano la regola a tutti gli elementi della pagina del tipo determinato. Esempi: body { [...] } o p { [...] } Classi Le classi applicano la regola a tutti gli elementi della pagina che presentano la proprietà class="nome_classe". La sintassi CSS è la seguente: .nome_classe { [...] } Identificatori Gli identificatori (comunemente ID) applicano la regola a quell'elemento della pagina che presenta la proprietà id="nome_identificatore". Gli ID contraddistinguono elementi unici. La sintassi CSS è la seguente: #nome_identificatore { [...] } Pseudoclassi Le pseudoclassi identificano elementi in base alle loro proprietà. first-child individua un elemento solo se è il primo figlio dell'elemento padre. Così quindi p:first-child { [...] } individuerà nel codice (X)HTML sottostante solo il primo paragrafo. <body> <p>Lorem ipsum</p> <p>Lorem ipsum</p> <p>Lorem ipsum</p> </body> link e visited si applicano ai collegamenti. La prima identifica i collegamenti non visitati, la seconda quelli visitati. La sintassi CSS è: a:link { [...] } active, focus e hover identificano gli elementi solo in particolari condizioni, la prima se l'elemento è attivo, la seconda se è selezionato, la terza se il puntatore è sopra di lui. Quindi p:hover { [...] } si applicherà solo se il puntatore del mouse andrà sopra un paragrafo e solo per il tempo Css Pagina 12


si applicherà solo se il puntatore del mouse andrà sopra un paragrafo e solo per il tempo che vi rimarrà. lang si utilizza per identificare gli elementi di una certa lingua ma il suo supporto è esiguo. Pseudoelementi Gli pseudoelementi identificano solo una parte di un elemento, senza la necessità di utilizzare la marcatura (X)HTML. first-line individua solo la prima linea di un paragrafo. Se la finestra del browser cambia dimensione si adatterà automaticamente alla nuova dimensione della linea. La sintassi CSS è la seguente: p:first-line { [...] } first-letter individua solo il primo carattere di un elemento. before e after sono due pseudoclassi utilizzate nella creazione dei contenuti generati. Non individuano un elemento, ma una posizione dove creare i contenuti. Sono poco utilizzate, dato il mancato supporto di Internet Explorer. Selettore di discendenza, figlio e fratello Identificano solamente gli elementi che si trovino in una particolare condizione di discendenza nella struttura (X)HTML della pagina. Il selettore di discendenza identifica solo gli elementi contenuti in altri elementi. Così p span { [...] } identifica solo gli elementi <span> contenuti in elementi <p>. Il selettore figlio identifica invece solo gli elementi che siano contenuti direttamente nell'elemento padre. Così div > p { [...] } individua solo i <p> contenuti direttamente in un <div>. Il selettore fratello identifica il primo elemento immediatamente successivo ad un altro con cui condivida lo stesso padre. Così h1 + p { [...] } individua solo il primo <p> fratello di <h1> Selettore di attributi Il selettore di attributi permette, tramite la sintassi che segue, di identificare elementi (X) HTML in base ai loro attributi. a[title=Esempio]{ [...] } Questa regola si applica solo agli elementi <a> che presentano l'attributo title="Esempio". I selettori di attributi sono molti e permetterebbero un controllo eccellente della pagina, ma Internet Explorer non li supporta ed il loro uso è quindi molto limitato.

Css Pagina 13


Javascript - Generale venerdì 17 aprile 2015

16:57

In informatica JavaScript è un linguaggio di scripting orientato agli oggetti e agli eventi, comunemente utilizzato nella programmazione Web lato client per la creazione, in siti web e applicazioni web, di effetti dinamici interattivi tramite funzioni di script invocate da eventi innescati a loro volta in vari modi dall'utente sulla pagina web in uso (mouse, tastiera ecc...). Le caratteristiche principali di JavaScript sono: l'essere un linguaggio interpretato: il codice non viene compilato, ma interpretato (in JavaScript lato client, l'interprete è incluso nel browser che si sta utilizzando). la sintassi è relativamente simile a quella del C, del C++ e del Java. definisce le funzionalità tipiche dei linguaggi di programmazione ad alto livello (strutture di controllo, cicli, ecc.) e consente l'utilizzo del paradigma object oriented. è un linguaggio debolmente tipizzato. è un linguaggio debolmente orientato agli oggetti. Gli oggetti stessi ricordano più gli array associativi del Perl che gli oggetti di Java o del C++. Altri aspetti di interesse: in JavaScript lato client, il codice viene eseguito direttamente sul client e non sul server. Il vantaggio di questo approccio è che, anche con la presenza di script particolarmente complessi, il web server non viene sovraccaricato a causa delle richieste dei client. Di contro, nel caso di script che presentino un codice sorgente particolarmente grande, il tempo per lo scaricamento può diventare abbastanza lungo. Un altro svantaggio è il seguente: ogni informazione che presuppone un accesso a dati memorizzati in un database remoto deve essere rimandata ad un linguaggio che effettui esplicitamente la transazione, per poi restituire i risultati ad una o più variabili JavaScript; operazioni del genere richiedono il caricamento della pagina stessa. Con l'avvento di AJAX tutti questi limiti sono stati superati. A differenza di altri linguaggi, quali il C o il C++, che permettono la scrittura di programmi completamente stand-alone, JavaScript viene utilizzato soprattutto in quanto linguaggio di scripting, integrato, quindi, all'interno di un altro programma.

JavaScript [Teorico] Pagina 14


Utilizzo in HTML venerdì 17 aprile 2015

17:11

Tag Script (HTML) Per inserire uno script in una pagina HTML, è necessario l'utilizzo del tag script. Questo tag NON è parte del linguaggio JavaScript in sé, ma serve solo come "contenitore" all'interno di una pagina HTML.

<script type="text/javascript"> JavaScript statements... </script>

Il seguente esempio visualizza un messaggio di avviso con all'interno scritto "Hello world". <script type="text/javascript"> alert('Hello world'); </script> Per "scrivere" direttamente nella pagina HTML: <script type="text/javascript"> document.write('Hello world'); </script>

JavaScript [Teorico] Pagina 15


Interazione con l'utente venerdì 17 aprile 2015

17:19

Tra le altre tecniche con le quali uno script JavaScript può interagire con l'utente all'interno di una pagina Web, ci sono le seguenti: • • • • • •

elementi form HTML, modificabili accedendo al DOM HTML; Alert dialog box (finestra di avviso) Confirm dialog box (finestra di conferma) Prompt dialog box (finestra di richiesta input) Barra di stato del browser Standard output ("console")

Per scrivere a video (cioè nella pagina in cui si trova lo script) è possibile utilizzare il metodo document.write(); le stringhe da visualizzare possono essere concatenate utilizzando l'operatore di concatenazione '+':

<html> <head> <script type="text/javascript"> <!-- Nasconde lo script ai browser obsoleti // Questa funzione genera una riga orizzontale della larghezza scelta. function bar(widthPct) { document.write("<hr align='left' width='" + widthPct + "%' />"); } // Questa funzione genera del testo preceduto da un titolo di dato livello. function output(headLevel, headText, text) { document.write("<h" + headLevel + ">" + headText + "</h" + headLevel + "><p>" + text + "</p>"); } // Fine del codice da nascondere --> </script> </head> <body> <script type="text/javascript"> <!-- Nasconde lo script ai browser obsoleti bar(25) output(2, "JavaScript Rules!", "Usare JavaScript è facile...") // Fine del codice da nascondere --> </script> <p>Questo è normale HTML, a differenza di quello generato dal codice sopra.</p> </body> </html>

JavaScript [Teorico] Pagina 16


Joomla! - Generale venerdì 17 aprile 2015

18:11

Joomla! è una piattaforma software di content management (CMS) per la realizzazione di siti web, scritta interamente in linguaggio PHP

Caratteristiche Il CMS è distribuito sotto forma di pacchetto compresso. È sufficiente scompattare l'archivio in una cartella pubblica di un server Web dotato di supporto a PHP ed avere a disposizione un database MySQL per i dati del programma. Dopo un processo di installazione (più propriamente, di prima configurazione) di pochi minuti, il sito è operativo. Tra le caratteristiche principali proposte ci sono: • Alto grado di personalizzazione grazie alle numerose estensioni moduli, componenti e plugin (vedi più sotto) disponibili sia come Software libero che con altre licenze; • Caching delle pagine per incrementare le prestazioni; • Funzioni di Search Engine Optimization, per facilitare l'indicizzazione dei contenuti da parte dei motori di ricerca; • Feeding RSS, che permette ai visitatori di essere avvisati degli aggiornamenti dei contenuti mediante l'utilizzo di un feed reader; • Versione stampabile delle pagine; • Esportazione delle pagine in formato PDF; • Pubblicazione tipo Blog; • Sondaggi; • Ricerca testuale su tutti i contenuti inseriti; • Localizzazione internazionale, che permette la traduzione di ogni funzionalità del software nella propria lingua; Altri componenti open source disponibili separatamente, sponsorizzati dal team di sviluppo di Joomla! ma non sviluppati dallo stesso team consentono, fra le altre cose, di: • Creare e gestire forum di discussione (Joomlaboard / Fireboard / Kunena); • Tradurre l'intero contenuto del sito per renderlo fruibile in più lingue (Joom!Fish); • Migliorare la gestione degli utenti registrati e potenziare loro interazioni, creando un effetto community (Community Builder).

Joomla! Pagina 17


Estensioni venerdì 17 aprile 2015

18:18

Uno dei punti di forza di Joomla! è la vivacità della comunità che lo supporta, sia in termini di discussione e capacità di aiuto (il forum ufficiale supera i 100.000 post mensili) che di ampia disponibilità di componenti aggiuntivi per personalizzare la funzionalità del motore. Tutte le estensioni vengono distribuite sotto forma di pacchetti compressi, la cui installazione è gestita in maniera completamente automatica da uno script apposito, disponibile nella sezione di amministrazione del proprio sito Joomla!, che permette anche di disinstallare estensioni già installate. Ne esistono di tre tipi: componenti, moduli e plugin (che in Joomla! 1.0 si chiamavano mambot). Molte estensioni (nell'ordine delle migliaia) sono scaricabili dall'archivio ufficiale http://extensions.joomla.org. Componenti I componenti di Joomla! sono estensioni specifiche che permettono di aggiungere funzionalità complesse a un sito realizzato usando il CMS Joomla!. I componenti per Joomla! differiscono dai moduli essenzialmente per il livello di complessità supportato. Tradizionalmente, i moduli vengono utilizzati per implementare funzionalità elementari mentre i componenti possono aggregare più moduli per realizzare funzionalità più complesse e più complete. In generale, l'aggiunta di un componente corrisponde all'aggiunta di un'intera sezione al sito dove viene installato. Per esempio, nel caso della gestione di una newsletter i moduli coprono funzioni tipo "iscrizione (aggiunta) di un nuovo utente", "cancellazione di un utente" eccetera mentre un componente potrebbe gestire la newsletter nel suo complesso. A loro volta, secondo il medesimo schema modulare, i componenti possono essere usati da applicazioni che coprono livelli di funzionalità ancora più complessi. I componenti possono essere realizzati da qualsiasi utente di Joomla!. In rete si possono inoltre trovare componenti già pronti, prodotti da sviluppatori indipendenti. Moduli I moduli di Joomla! sono estensioni che permettono l'aggiunta di piccole porzioni di HTML a un sito realizzato usando Joomla!. Sono usati per mostrare elementi di informazione o funzionalità interattive all'interno di un sito Joomla!, in maniera collaterale al contenuto principale. Si possono considerare come finestre aggiuntive attraverso le quali dare informazioni non necessariamente correlate alla pagina visualizzata, magari per mostrare le altre funzionalità del sito.

I moduli recuperano le informazioni, o parti di informazioni definite attraverso parametri, e le visualizzano nella zona di loro competenza; ad esempio il modulo "ultime notizie" recupera di default i soli titoli degli articoli per visualizzarli nel sito come lista, dando la possibilità di anticipare al visitatore ciò che si trova all'interno del sito stesso e quali sono le notizie più recenti. All'utente viene data la possibilità di scegliere quali moduli visualizzare e dove collocarli all'interno del layout della pagina, in accordo con un template (vedi sotto). Moduli sono anche i menu di navigazione all'interno di un sito Joomla!. Agendo direttamente nella sezione Gestione Moduli (Module Manager) Joomla! Pagina 18


Agendo direttamente nella sezione Gestione Moduli (Module Manager) dell'amministrazione, possono essere creati semplici moduli in HTML. Nel caso di script più complessi, essi sono in genere preparati per essere installati con le apposite procedure. Esistono moltissimi moduli di grande utilità già programmati e pronti all'uso, messi gratuitamente a disposizione nell'apposita sezione del sito ufficiale delle estensioni. Fra i moduli standard si possono segnalare il modulo main menu (il menu principale), il modulo di login (per l'accesso riservato degli utenti), quello per i sondaggi (poll) e quello per la distribuzione dei feed RSS (syndicate). Struttura moduli Generalmente, un modulo è composto da un file XML che funge da installer e che contiene le informazioni sullo sviluppatore dell'estensione e sugli altri file che lo compongono. È affiancato da uno o più file PHP che ne svolgono la funzione principale, ovvero quella di generare il codice html che verrà poi riproposto sul sito.

È possibile includere file .ini per consentire una più facile localizzazione del modulo. Tutti i file sopra elencati vengono poi compattati in un archivio di tipo .tgz o .zip, poi installabile sul CMS. Plugin I mambot sono nella versione 1.0 l'equivalente dei plugin della versione 1.5x in poi, quando richiamati, attivano un programma, uno script o eseguono una specifica funzione. Spesso agiscono in background nell'intero sito. Possono essere semplicissimi come la funzione che sostituisce un certo testo digitato con una funzione codificata (ad esempio posizionare una immagine precaricata impaginandola in un testo o spezzare in due pagine il contenuto di un lungo articolo), ma possono anche avere effetti molto più evidenti, come richiamare, all'interno delle finestre dei form per l'inserimento dei contenuti, le funzionalità di sofisticati editor di testo in modalità WYSIWYG elaborati da terze parti. Possono inoltre permettere collegamenti tra diversi componenti; una galleria di immagini, ad esempio, può avere un mambot collegato che renda la descrizione delle immagini disponibile alle funzioni di ricerca sul sito. Esistono mambot per inserire funzioni Flash, per collegare automaticamente un glossario alle parole contenute nei testi degli articoli, per generare miniature delle immagini inserite nei testi in modo che alla selezione appaia una finestra con l'immagine a maggiore risoluzione, e molti altri. Template Un template è un documento HTML/CSS che contiene il codice necessario a guidare Joomla! e ad impaginare i contenuti: ad esempio contiene il codice che permette il caricamento dei vari moduli in posizioni predefinite, codice per caricare il cosiddetto mainbody (la zona in cui vengono presentati i contenuti principali generati da Joomla! o dai componenti aggiuntivi) e così via. Per ottenere l'aspetto desiderato molti template contengono anche una serie di immagini (per gli sfondi, i bordi eccetera). Ogni template può essere scaricato da appositi siti gratuitamente o a pagamento ed installato attraverso l'apposita area admin.

Joomla! Pagina 19


POP3 - Generale venerdì 17 aprile 2015

18:26

Il Post Office Protocol (detto anche POP) è un protocollo di livello applicativo di tipo clientserver che ha il compito di permettere, mediante autenticazione, l'accesso da parte del client ad un account di posta elettronica presente su di un host server e scaricare le e-mail dell'account stesso. Il protocollo per inviare posta è invece il protocollo SMTP.

Il POP (nella versione 3) rimane in attesa sulla porta 110 dell'host (di default, ma può anche essere diversa) per una connessione TCP da parte di un client. I messaggi di posta elettronica, per essere letti, devono essere scaricati sul computer (questa è una notevole differenza rispetto all'IMAP), anche se è possibile lasciarne una copia sull'host. In pratica, il client, attraverso un account configurato POP, accede al server remoto e salva in locale i messaggi (definitivamente e non, come fa il protocollo IMAP, in una cache).

Il protocollo POP3 non prevede alcun tipo di cifratura, quindi anche le password utilizzate per l'autenticazione fra server e client passano in chiaro. Per risolvere questo possibile problema è stata sviluppata l'estensione APOP che utilizza MD5.

POP3 Pagina 20


Esempio di comunicazione POP3 venerdì 17 aprile 2015

18:30

Dopo aver stabilito una connessione tra il mittente (il client) e il destinatario (il server), ciò che accade è l'apertura di una sessione POP3. Nella successiva conversazione, qualsiasi cosa inviata dal client è preceduta con "C:", mentre qualsiasi cosa inviata dal server è preceduta da "S:". Su molti computer si può stabilire una connessione mediante il comando telnet: telnet www.example.com 110 Questo comando apre un collegamento POP3 verso l'host www.example.com. S:+OK <22593.1129980067@example.com> C:USER pippo S:+OK C:PASS pluto S:+OK C:LIST

S:+OK 1 817 2 124 . C:RETR 1 S:+OK Return-Path: <pippo@example.org> Delivered-To: pippo@example.org Date: Sat, 22 Oct 2005 13:24:54 +0200 From: Mario Rossi <mario@rossi.org> Subject: xxxx Content-Type: text/plain; charset=ISO-8859-1 testo messaggio . C:DELE 1 S:+OK C:QUIT S:+OK

POP3 Pagina 21


SMTP - Generale venerdì 17 aprile 2015

18:31

Simple Mail Transfer Protocol (SMTP) è il protocollo standard per la trasmissione via internet di e-mail. In italiano si potrebbe tradurre come "Protocollo elementare di trasferimento postale". I protocolli utilizzati per ricevere posta sono invece il protocollo POP e l'IMAP.

È un protocollo relativamente semplice, testuale, nel quale vengono specificati uno o più destinatari di un messaggio, verificata la loro esistenza il messaggio viene trasferito. È abbastanza facile verificare come funziona un server SMTP mediante un client telnet. Il protocollo SMTP utilizza come protocollo di livello transport TCP. Il client apre una sessione TCP verso il server sulla porta 25 (recentemente modificata in 587 da molti Provider per limitare lo spam). Per associare il server SMTP a un dato nome di dominio (DNS) si usa un Resource Record di tipo MX (Mail eXchange). SMTP è un protocollo che permette soltanto di inviare messaggi di posta, ma non di richiederli ad un server: per fare questo il client di posta deve usare altri protocolli, quali il POP3 (Post Office Protocol) e l'IMAP (Internet Message Access Protocol).

SMTP Pagina 22


Comandi venerdì 17 aprile 2015

18:37

HELO: Inviato da un client per l'autoidentificazione, solitamente con un nome di dominio. EHLO: Consente al server di identificare il supporto per i comandi ESMTP (Extended Simple Mail Transfer Protocol). MAIL FROM: Identifica il mittente del messaggio. Utilizzato nella forma MAIL FROM:. RCPT TO: Identifica i destinatari del messaggio. Utilizzato nella forma RCPT TO:. TURN: Consente al client e al server di invertire i ruoli e inviare la posta nella direzione opposta senza dovere stabilire una nuova connessione. ATRN: Il comando ATRN (Authenticated TURN) utilizza, a propria discrezione, uno o più domini come parametro. Il comando ATRN deve essere rifiutato se la sessione non è stata autenticata. SIZE: Fornisce un meccanismo per mezzo del quale il server SMTP può indicare la dimensione massima supportata per i messaggi. I server compatibili devono fornire delle estensioni della dimensione per indicare la massima dimensione consentita per i messaggi. I client non devono inviare messaggi di dimensione superiore a quella indicata dal server. ETRN: Un'estensione di SMTP. ETRN viene inviato da un server SMTP per richiedere che un altro server invii gli eventuali messaggi di posta elettronica di cui dispone. PIPELINING: Consente di inviare un flusso di comandi senza aspettare una risposta dopo ogni comando. CHUNKING: È un comando ESMTP che sostituisce il comando DATA. Questo comando invia un comando BDAT con un argomento contenente il numero di byte totale del messaggio in modo che l'host SMTP non debba continuamente eseguire la scansione per determinare la fine dei dati. Il server destinatario conta i byte nel messaggio e, quando la dimensione del messaggio corrisponde al valore inviato dal comando BDAT, il server presuppone di avere ricevuto tutti i dati del messaggio. DATA: Inviato da un client per avviare il trasferimento del contenuto di un messaggio. DSN: È un comando ESMTP che attiva le notifiche dello stato del recapito. RSET: Annulla l'intera transazione del messaggio e ripristina il buffer. VRFY: Verifica che una cassetta postale sia disponibile per il recapito di messaggi. Ad esempio, vrfy ted verifica che sul server locale risieda la cassetta postale di Ted. Questo comando è disattivato per impostazione predefinita nelle implementazioni di Exchange. HELP: Restituisce l'elenco dei comandi supportati dal servizio SMTP. QUIT: Termina la sessione.

SMTP Pagina 23


Esempio di comunicazione SMTP venerdì 17 aprile 2015

18:38

Quella che segue è una transazione SMTP valida. Le righe inviate dal client sono precedute da "C:", mentre quelle inviate dal server da "S:". Su molti computer si può stabilire una connessione mediante il comando telnet: telnet www.example.com 25 Questo comando apre una connessione a www.example.com sulla porta 25 TCP. S: C: S: C: S: C: S: C: S: C: C: C: C: C: C: C: S: C: S:

220 www.example.com ESMTP Postfix HELO mydomain.com 250 Hello mydomain.com, pleased to meet you MAIL FROM: <sender@mydomain.com> 250 sender@mydomain.com ... Sender ok RCPT TO: <friend@example.com> 250 friend@example.com ... Recipient Ok DATA 354 End data with "." on a line by itself Subject: messaggio di prova From: sender@mydomain.com To: friend@example.com Ciao, questa è una prova. . 250 Ok: queued as 12345 QUIT 221 Bye

SMTP Pagina 24


Sicurezza SMTP venerdì 17 aprile 2015

18:41

Una delle limitazioni del protocollo SMTP originario è che non gestisce l'autenticazione dei mittenti. Oltre al rischio di spam, esiste la possibilità di inviare e-mail facendo apparire come mittente l'indirizzo corrispondente ad un altro account. Senza accedere all'account di terzi, è possibile stabilire una connessione al mail-server e scrivere un messaggio in codice SMTP contenente i comandi relativi a mittente e destinatario, dare i relativi parametri e il corpo della e-mail. Per ovviare a questi problemi è stata sviluppata un'estensione chiamata SMTP-AUTH. Nonostante questo, lo spam rimane ancor oggi un grave problema della posta elettronica. Tuttavia, non si ritiene praticabile una revisione radicale del protocollo SMTP, per via del gran numero di implementazioni del protocollo attuale (ad esempio, è stato proposto Internet Mail 2000 come protocollo alternativo).

Per questo motivo sono stati proposti diversi protocolli ausiliari per assistere le transazioni SMTP. L'Anti-Spam Research Group dell'IRTF sta lavorando su varie proposte di autenticazione e-mail centrate sulla flessibilità, leggerezza e scalabilità.

SMTP Pagina 25


IMAP - Generale venerdì 17 aprile 2015

18:43

L'Internet Message Access Protocol (IMAP), a volte anche chiamato Interactive Mail Access Protocol, è un protocollo di comunicazione per la ricezione di e-mail. Il significato "Interactive Mail Access Protocol" è stato valido fino alla versione 3, dalla quarta in poi è cambiato in "Internet Message Access Protocol". L'attuale versione è la "4 (revisione 1)". Il protocollo è stato inventato come alternativa più moderna all'utilizzatissimo POP. La porta predefinita del demone IMAP sull'host è la 143. Se si utilizza una connessione sicura tramite SSL, allora la porta è la 993.

Differenze tra IMAP e POP Entrambi i protocolli permettono ad un client (programma di posta elettronica oppure servizio di webmail) di accedere, leggere e cancellare le e-mail da un server, ma con alcune differenze. Con entrambi i protocolli, il client scarica la posta direttamente sul PC, eventualmente cancellandola dal server, ma è altresì possibile conservare copia delle proprie e-mail sul server, e scaricarle in un secondo momento da altri computer. IMAP, a differenza di POP, permette procedure complesse di sincronizzazione. Ecco un elenco delle caratteristiche dell'IMAP ma non del POP: • Accesso alla posta sia online che off-line Quando si utilizza il POP3, il client si connette per scaricare i nuovi messaggi e poi si disconnette. Con l'IMAP il client rimane connesso e risponde alle richieste che l'utente fa attraverso l'interfaccia; questo permette di risparmiare tempo se ci sono messaggi di grandi dimensioni. POP3 salva in locale i messaggi, IMAP li lascia sul server e li memorizza temporaneamente nella cache (sebbene si possa poi configurare il client perché crei un file dati archiviato in locale, ad esempio nel formato pst).

• Più utenti possono utilizzare la stessa casella di posta Il protocollo POP assume che un solo client (utente) sia connesso ad una determinata mailbox (casella di posta), quella che gli è stata assegnata. Al contrario l'IMAP4 permette connessioni simultanee alla stessa mailbox, fornendo meccanismi per controllare i cambiamenti apportati da ogni utente. • Supporto all'accesso a singole parti MIME di un messaggio La maggior parte delle e-mail sono trasmesse nel formato MIME, che permette una struttura ad albero del messaggio, dove ogni ramo è un contenuto diverso (intestazioni, allegati o parti di esso, messaggio in un dato formato, eccetera). Il protocollo IMAP4 permette di scaricare una singola parte MIME o addirittura sezioni delle parti, per avere un'anteprima del messaggio o per scaricare una mail senza i file allegati. • Supporto per attributi dei messaggi tenuti dal server. Attraverso l'uso di attributi, tenuti sul server, definiti nel protocollo IMAP4, ogni singolo client può tenere traccia di ogni messaggio, per esempio per sapere se è già stato letto o se ha avuto una risposta.

• Accesso a molteplici caselle di posta sul server IMAP Pagina 26


• Accesso a molteplici caselle di posta sul server Alcuni utenti, con il protocollo IMAP4, possono creare, modificare o cancellare mailbox (di solito associate a cartelle) sul server. Inoltre, questa gestione delle mailbox, permette di avere cartelle condivise tra utenti diversi. • Possibilità di fare ricerche sul server L'IMAP4 permette al client di chiedere al server quali messaggi soddisfano un certo criterio, per fare, per esempio, delle ricerche sui messaggi senza doverli scaricare tutti. • Supporto di un meccanismo per la definizione di estensioni Nelle specifiche dell'IMAP è descritto come un server può far sapere agli utenti se ha delle funzionalità extra. Molte estensioni dell'IMAP sono molto diffuse, ad esempio l'IMAP Idle,[1] ovvero la funzione del protocollo IMAP descritto nella RFC 2177 che consente a un client di indicare al server che è pronto ad accettare notifiche in tempo reale. Questa caratteristica permette quindi all'utente di ricevere dal server ogni modifica che avviene nella casella e-mail, senza il bisogno di premere ogni volta "Invia/Ricevi". L'IMAP è principalmente utilizzato in ambito professionale ovvero presso enti ed imprese, dove un utente cambia postazione spesso: con il POP3, sarebbe necessario scaricare i messaggi ogni volta che si cambia dispositivo, mentre con l'IMAP si possono scaricare solo i nuovi messaggi o accedere ad un messaggio specifico senza dover scaricare gli altri. Comunque si sta diffondendo anche per uso personale soprattutto da parte dell'utenza più esperta.

IMAP Pagina 27


Domande martedì 12 maggio 2015

17.36

• Elenca le principali caratteristiche di un CMS Le principali caratteristiche di un CMS sono ○ Gestione di interfacce basate su browser web per I'aggiornamento delle pagine; ○ L'utilizzo di template grafici per la presentazione dei contenuti; ○ Gestione di ruoli distinti di utenti e di specifiche funzionalità di workflow; ○ Database per l'archiviazione di immagini e contenuti testuali e grafici; ○ Reperimento e integrazione con contenuti provenienti da altri sistemi informatici, ○ Gestione di mailing list e messaggistica; ○ Gestione e classificazione di link, notizie, faq. eventi, ○ Funzionalità di interrogazione e ricerca: ○ Personalizzazione dei criteri grafici di presentazione dei contenuti.

• Indica il ruolo dei moduli e dei plugin in relazione al cms Joomla! 3.x Le estensioni sono tutte funzionalità esterne al core di Joomla. Le estensioni comprendono moduli, componenti e plugin. Un componente è un'applicazione completa che, aggiunta all'interno di Joomla, amplia le funzionalità del sito. Un modulo, rispetto ad un componente, è più piccolo e snello nel codice e generalmente viene utilizzato nelle applicazioni di supporto. A volte è necessario che, per funzionare, un modulo deve essere a ffiancato da un specifico componente, Infine i mambot e plugin sono delle porzioni di codice che aggiungono funzionalità all'intero sito. Si suddividono in due classi: i mambot che, oltre a cambiare il comportamento, danno un effetto visuale diverso alle parti interessate del sito e i mambot che influenzano il comportamento all'interno del sito ma senza effetti visuali.

• Indicare i tipi di organizzazione dei contenuti di un ipertesto L'organizzazione può essere multisequenziale, a griglia, gerarchica o libera. • Struttura multisequenziale E un modo semplice per presentare le informazioni. All interno dei gruppi l'organizzazione può essere: cronologica, logica (serie logica di argomenti), alfabetica. • Struttura a griglia E un buon modo per correlare diverse variabili (tempo, categorie e cosi via). Deve però essere facile riconoscere le interrelazioni tra i diversi argomenti. • Struttura gerarchica Il materiale a disposizione deve poter essere scomposto in tante componenti che hanno delle relazioni gerarchiche. Struttura libera CMS Pagina 28


• Struttura libera Sfrutta tutta la potenza del Web, ma come succede nell'universo Web, le relazioni possono generare confusione. Vi è inoltre un aumento della complessità, e c'è il rischio di creare pagine senza link in uscita

• Descrivere gli elementi caratterizzanti del pattern M.V.C MVC è un pattern molto diffuso, soprattutto nell'ambito della programmazione a oggetti, in grado di separare la logica di presentazione dei dati (view) dalla logica di business (gestita da controller e model)' Questo pattern recnde indlpendenti i cambiamenti su come i dati sono trattati da come essi sono visualizzati o memorizzati. L'idea che ha dato origine al MVC pattern era di creare una sequenza del tipo inputelaborazione-output anche per il mondo delle interfacce grafiche. Il Controller interpreta i segnali provenienti dall'utente attraverso il mouse o la tastiera (input e li trasforma in comandi inviati al Model. Il Model gestisce la struttura dati e risponde all'input dell'utente con le modifiche richieste, segnalando i cambiamenti effettuati all'interfaccia (View) che si adatterà alla nuova situazione.

• Descrivere gli elementi caratterizzanti di una architettura 'three-tier' per un sito web Nel contesto dello sviluppo Web, l'architettura a tre livelli è tipicamente utlizzata per i siti web, in particolar modo per quelli dedicati al commercio elettronico. Infatti: ' Livello Presentazione (detto front-end). fa riferimento al contenuto, generato in modo statico o dinamico, che viene visualizzato dal browser sui computer client; ' Livello Logico (Business Logic): vi avvengono la generazione e l'elaborazione del contenuto dinamico, questa attività è gestita da un Application Server; questo livello riceve le richieste dal livello Presentazione, le elabora e fornisce le risposte (al livello Presentazione), se necessita di dati li richiede al livello Dati; . Livello Dati (detto backend): comprende sia I'archivio di dati sia il software DBMS (Data Base Management System) che gestisce i dati e fornisce l'accesso a essi. Un'applicazione così strutturata, in livelli indipendenti, offre alcuni vantaggi: • è facile da mantenere; • le componenti sono riusabili; • è veloce da sviluppare grazie alla divisione dei compiti: il web designer si occupa della presentazione, il software engineer sviluppa la logica e il DB administrator progetta il modello dei dati.

CMS Pagina 29


Grafi mercoledĂŹ 13 maggio 2015

22.14

b) Scrivi lo pseudocodice di un algoritmo iterativo DFVisit(G, v) che, utilizzando una pila P, effettua la visita in profonditĂ di un multigrafo diretto G a partire da un suo nodo v visualizzando man mano la chiave numerica di ciascun nodo in ordine di visita. 1

DFVisit(G, v){

2

for (each u in G)

3

u.mark:= false

4

P:= new Stack() /queue()

5

P.push(v)

6

while(not P.isEmpty()){

7

u:= P.pop()

8

if (not u.mark){

9

visit(u) // prints the key on the screen

10

u.mark:=true

11

}

12

for (each w next to u){

13

if (not w.mark)

14

P.push(w)

15

} // end for

16

} // end while

17

} // end algorithm

Pseudocodice Pagina 30


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.