Corso di Web design Collegio Universitario don Nicola Mazza



Scaricare 338.04 Kb.
Pagina1/4
24.01.2018
Dimensione del file338.04 Kb.
  1   2   3   4

Corso di Web design Collegio Universitario don Nicola Mazza


Che cos'è un linguaggio di programmazione

Un linguaggio di programmazione è un linguaggio dotato di un insieme di regole per scrivere programmi per computer, ovvero un insieme di istruzioni che a partire da un insieme di dati di input, applicando una funzione di trasformazione descritta, appunto, dalle istruzioni, produca un insieme di dati di output.

In un linguaggio di programmazione si possono distinguere:


  • L'insieme delle parole chiavi: un insieme di parole che hanno un significato particolare per chi deve tradurle in istruzioni eseguibili o deve eseguirle e a ciascuna delle quali corrisponde una azione ben definita. Le parole chiavi non possono essere usate se non per indicare le azioni ad esse associate. Per esempio, in C++, non si può definire una variabile con nome main, essendo questa una parola chiave a cui corrisponde il nome della funzione che viene eseguita all'avvio del programma. In definitiva il linguaggio deve essere non ambiguo.

  • I caratteri speciali: un insieme di caratteri con significati particolari. Per esempio, in C++, sono caratteri speciali: il carattere punto e virgola (;) che chiude una istruzione o il carattere virgola (,) che delimita i componenti di un elenco o il carattere spazio che distingue un componente (una parola) dall'altro. Anche in questo caso, tali caratteri, non possono essere utilizzati se non con quel significato particolare.

  • Un insieme di regole sintattiche: un modo di mettere assieme le parole così da formare frasi per indicare le azioni che devono essere compiute.

Una volta note le caratteristiche di un linguaggio di programmazione, si può tradurre un algoritmo in frasi (affermazioni, statement) di quel linguaggio.

Cos'è un sito web?

Un sito web è uno spazio su un computer (server) nel quale chiunque si abboni può dire "questo sono io, questo è che cosa faccio, che cosa conosco, o che cosa vendo. E' una fonte elettronica di informazioni riguardanti voi o la vostra attivita', disponibile al mondo intero 24 ore al giorno.

All'interno del sito web, ogni schermata contenente informazioni è denominata pagina. Le pagine possono contenere il testo, immagini, o persino fotografie, audio e video e tanto altro.

Alcune delle caratteristiche principali delle PAGINE WEB sono i collegamenti ipertestuali (links). I links possono essere cliccati con il mouse del vostro pc e servono a trasportare i visitatori alle altre pagine del sito (navigazione).



La CGI

Un primo passo verso un uso più dinamico del Web, che lo facesse evolvere da una semplice collezione di ipertesti ed ipermedia è stato quello di permettere ai server di comunicare con applicazioni esterne.

In questo contesto nasce la Common Gateway Interface, che è, essenzialmente, un processo di tipo server-side che fa da tramite tra il server Web ed altre applicazioni o risorse generiche (database, immagini, video, ecc.) residenti anche su macchine diverse, fornendo un'interfaccia per apposite applicazioni esterne, denominate anche "gateway programs", script CGI o, ancora, programmi CGI. Tale interfaccia permette di astrarre dai dettagli della comunicazione dei dati, offrendo al programmatore la possibilità di focalizzare l'attenzione esclusivamente sui due fattori per lui più importanti:


  1. Quali dati fornire come input

  2. Come elaborare i dati ottenuti in output

  3. I meccanismi da imparare sono pertanto quelli necessari a maneggiare i dati che il server passa al programma e a restituire i dati da questo generati.

 

I programmi CGI

I programmi CGI estendono le funzionalità base del server Web, dandogli la capacità di servire una varietà di richieste utente che altrimenti non potrebbe gestire.

Contengono il codice che permette di ricevere i dati dal server ed elaborarli a seconda delle necessità. Possono essere realizzati in qualsiasi linguaggio supportato dal server Web.

 

Flusso dei dati in un processo CGI



Tipicamente, il flusso dei dati in un processo CGI avviene come in figura, seguendo il seguente iter:

  1. Un client Web realizza una connessione con un server Web (tipicamente tramite un browser), all'indirizzo specificato nella URL.

  2. Il client Web invia una richiesta (tramite uno tra i metodi POST e GET visti nel paragrafo precedente).

  3. I dati inviati dal client sono passati dal server al programma CGI referenziato nella URL.

  4. Il programma CGI legge i dati ed esegue il processo per cui è stato creato.

  5. Il programma CGI genera un risultato da restituire al client tramite il server, come risposta alla richiesta del punto 2. Tale risultato è tipicamente sotto forma di documento HTML, ma può essere anche un altro tipo di documento.

  6. Dopo aver passato la risposta fornita dal programma CGI al client, il server chiude la connessione aperta al punto 1.

http://users.libero.it/giudio/tech/immagini/image19.jpg

Flusso dei dati in un processo CGI

 

Gestione dell'I/O



Un server Web ed un programma CGI possono comunicare e passarsi i dati l'un l'altro in quattro modi:

Variabili d'ambiente: contengono valori settati dal server Web che deve eseguire lo script ed ivi mantenute. Si distinguono due tipi di variabili d'ambiente:

  • Quelle il cui valore è settato indipendentemente dal tipo di richiesta del client.

  • Quelle, denominate "request-specific", dipendenti dal tipo di richiesta effettuata dal client. Fra queste una serie di variabili contenenti i valori delle variabili di richiesta HTTP trattate nel paragrafo 2.1.

  • Permettono di accedere ai dati forniti dal client, di determinare il tipo di browser Web in uso, di mantenere e passare informazioni sullo stato tra diverse richieste indipendenti, sopperendo così allo svantaggio del linguaggio HTML di essere stateless.

La lista completa di tutte le variabili d'ambiente è sostanzialmente lunga e può variare da server a server, è comunque utile esaminarne qualcuna per capire, nella pratica, come e dove intervengano. Le prime tre variabili esaminate coincidono con le variabili di richiesta HTTP inviate al Server dal browser del Client per riconoscere il tipo di trasmissione (GET/POST) e gestirla di conseguenza.

REQUEST_METHOD

 Specifica il metodo di richiesta (GET o POST) adottato dal client.



QUERY_STRING

 QUERY_STRING contiene tutto ciò che compare nella URL al momento della chiamata del programma CGI. Consideriamo, ad esempio, il seguente URL:

http://www.uniud.it/cgi-bin/test.cgi?test di prova

 Questo va ad attivare lo script test.cgi nella directory cgi-bin presente sull'host il cui indirizzo Internet è www.uniud.it. L'input, costituito dalla stringa "test di prova" viene passato al programma ponendolo nella variabile QUERY_STRING come segue:

QUERY_STRING = test+di+prova

Osservazione: Il browser pone i valori nella URL, come nell'esempio appena visto, in due casi: quando al suo interno viene definito un Form HTML, con il metodo GET specificato, oppure quando nella testata della pagina HTML viene posizionato un particolare elemento, chiamato ISINDEX, che provoca l'inserimento nella pagina di un campo di input simile al controllo per l'inserimento di una stringa, già visto esplorando i Form. In questi due casi, quando l'utente esegue il comando di SUBMIT (ovvero clicca sul bottone atto a far eseguire l'operazione di invio dati – data submitting), il browser legge i valori e li posiziona a completamento dell'URL.

 

CONTENT_LENGTH

 Rappresenta la dimensione, in caratteri , del buffer dati trasferito dal client al server durante una richiesta.

Qualora venga utilizzato il metodo POST, il server non invia alcun indicatore di fine-file, ecco quindi che CONTENT_LENGTH diventa fondamentale per conoscere l'esatta dimensione dell'input da leggere.

Esempio: Considerando il seguente form HTML



{Input="A B C"}

{Input="1234"}

All'atto dell'invio dei dati il programma CGI riceve i seguenti valori:

CONTENT_LENGTH = 14

STDIN: A=A+B+C&B=1234

 

AUTH_TYPE

 Identifica il metodo da utilizzare per validare gli utenti nel caso il server supporti l'autenticazione ed esegua i programmi CGI in modalità protetta.

 

Standard Input: è lo standard input file descriptor di sistema. Su molti sistemi Unix, ad esempio, lo Standard Input è il buffer dove un comando o un programma leggono il proprio valore di input.

Tipicamente coincide con un dispositivo terminale di input o con l'output di un altro programma.



Standard Output: è lo standard output file descriptor di sistema.

Tipicamente coincide con un dispositivo terminale di output o con l'input di un altro programma.



Command line: è un metodo attraverso il quale i dati vengono prelevati e passati al programma così come sono stati messi nella riga di comando resa disponibile dall'elemento ISINDEX.

Per passare i valori al programma CGI viene utilizzato lo standard Unix, inviando un array di puntatori a stringhe, che formano l'input, ARGV, ed una quantità, ARGC, indicante il numero di valori significativi nell'array ARGV.

Un metodo addizionale di comunicazione è stato sviluppato per un'implementazione specializzata della CGI, conosciuta come Windows CGI (o WinCGI) ed operante su macchine con sistema operativo MS Windows. Tale metodo si basa sull'utilizzo di un file temporaneo caratterizzato dall'estensione .INI, che viene utilizzato come segue:


  1. Al momento del ricevimento della richiesta del client, il server preleva i dati inviati nell'header della stessa, li converte in variabili associate ad un nome, combina queste con altre variabili d'ambiente e le salva nel file .INI. Ulteriori dati ricevuti dal client e non presenti nell'header, vengono invece salvati in un altro file temporaneo (lo identificheremo come file temporaneo di input)

  2. Il server decodifica ed analizza il contenuto di ogni form presente nella richiesta. Associa una variabile ad ogni campo del form ed aggiunge queste al file .INI.

  3. Il server crea un nome per il file temporaneo di output, e lo aggiunge, assieme al nome del file temporaneo di input, al file .INI. A questo punto, tutti i dati necessari all'esecuzione del programma CGI sono presenti nel package formato dal file .INI e dal file temporaneo di input.

  4. Il programma CGI, una volta lanciato dal server tramite la procedura di sistema CreateProcess(), localizza il file .INI (l'indirizzo viene fornito a cura della CreateProcess).

  5. Dopo aver seguito i suoi compiti, il programma CGI tipicamente genera una risposta da inviare al browser del client. A tal fine crea un file temporaneo di output, utilizzando il nome creato precedentemente dal server, e vi scrive i dati. Questi sono organizzati in due sezioni: una intestazione atta a definire il tipo dei dati che può variare da semplice testo ascii piano, a testo HTML a immagini o altro ancora, e l'effettivo contenuto informativo della risposta.

  6. Non appena il server determina la fine dell'esecuzione, legge i dati dal file temporaneo di output, li riorganizza in modo da creare una risposta aderente al protocollo HTTP, e così li invia al browser del client.

http://users.libero.it/giudio/tech/immagini/image20.jpg

Flusso dei dati in un processo Windows CGI

 

CGI e sicurezza



Eseguire un programma CGI comporta dei rischi. Per usare le parole di Bob Breedlove, esperto nell'uso di questa tecnica, è un po' come "invitare il mondo ad eseguire un programma sul nostro sistema". In effetti, ciò che avviene è proprio che da un generico browser, vengano lanciate, sul nostro server, delle attivazioni di processi. Attivazioni, per altro, facilmente localizzabili e modificabili, giacché sono innestate nelle pagine HTML caricate sul browser del client. Qualora qualche malintenzionato riuscisse a modificare in maniera congruente il nome del processo da eseguire, attivandone un altro, gli effetti sul sistema potrebbero essere disastrosi. Se il malintenzionato fosse anche in grado di installare del codice malizioso sul Server, una sorta di virus informatico, ebbene tramite la CGI sarebbe in grado di attivarlo comodamente seduto davanti al proprio computer!

Per evitare tali abusi, sono state applicate, nel tempo, regole e restrizioni. La maggior parte degli HTTP daemon pone i seguenti limiti ai programmi CGI da eseguire:



  • Limiti sulle azioni da eseguire. Ai programmi CGI si impediscono quelle azioni ritenute particolarmente pericolose per il sistema, come, ad esempio, la cancellazione dei file o l'installazione di programmi eseguibili.

  • Limiti sul campo di accessibilità alle informazioni. Consistono nel rendere le directory o i singoli file ritenuti di interesse riservato inaccessibili ai programmi CGI.

  • Limiti sulla posizione dei programmi CGI eseguibili. Raggruppando tutti gli script eseguibili dal server in una directory si può evitare l'attivazione dall'esterno di codice malizioso nascosto chissà dove nel sistema. Il raggruppamento semplifica, inoltre, il controllo continuo sul codice di script installato.

  • L'utilizzo ulteriore di password, in alcuni casi, può permettere di alleggerire i limiti.

 

Limiti di performance della CGI

Sebbene la CGI costituisca uno strumento sostanzialmente duttile per ottenere interattività sul Web, ammettendo l'uso di diversi linguaggi , interpretati o compilati, permettendo, come visto, in accordo con la politica di sicurezza adottata, di accedere potenzialmente a tutte le risorse del sistema e venendo così incontro alle esigenze più eterogenee, soffre di un limite importante, insito nel proprio meccanismo di funzionamento.

Ogni volta che da un browser viene lanciata l'esecuzione di uno script, il server, ricevuta la richiesta, crea un nuovo processo , e questo, per un sito ad alto traffico può portare ad un superlavoro per il processore, con conseguente drastico decadimento di tutte le prestazioni del sistema.



Che cosa può fare PHP?

Qualsiasi cosa. PHP ha come obiettivo principale lo scripting server-side, per cui può fare tutto ciò che può fare un qualunque programma CGI, come raccogliere dati da un form, generare pagine dai contenuti dinamici, oppure mandare e ricevere cookies. Ma PHP può fare molto di più.

Esistono tre campi principali in cui vengono usati gli scripts PHP.


  • Lo scripting server-side. Questo è il campo più tradizionale ed il maggiore obiettivo del PHP. Per fare questo lavoro occorrono tre cose. Il parser PHP (CGI o server module), un webserver ed un browser web. Occorre avviare il server web con un'installazione di PHP attiva. Si può accedere all'output del programma PHP con un browser web e vedere la pagina PHP tramite il server. Tutto ciò può essere attivato sul pc di casa se si desidera semplicemente provare la programmazione PHP. Consultate la sezione Istruzioni per l'installazione per ulteriori informazioni.

  • Lo scripting di righe di comando. Si può creare uno script PHP da usare senza alcun server o browser. Per usarlo in questo modo, l'unica cosa necessaria è un parser PHP. Questo tipo di utilizzo è ideale per gli scripts eseguiti con cron (sui sistemi *nix o Linux) oppure il Task Scheduler (su Windows). Questi script possono essere utilizzati per semplici task di processamento testi. Vedere la sezione Uso di righe di comando in PHP per maggiori informazioni.

  • Scrittura di applicazioni desktop. Probabilmente PHP non è il linguaggio più adatto per scrivere applicazioni desktop, con interfaccia grafica, ma, se lo si conosce molto bene, e se se ne vogliono usare delle caratteristiche avanzate in applicazioni client-side, si può anche adoperare PHP-GTK per scrivere questo tipo di pogrammi. Allo stesso modo, c'è anche la possibilità di scrivere applicazioni cross-platform. PHP-GTK è un'estensione di PHP non reperibile nella grande distribuzione. Se vi interessa, visitate » il sito web.

PHP può essere usato su tutti i principali sistemi operativi, inclusi Linux, molte varianti di Unix (compresi HP-UX, Solaris e OpenBSD), Microsoft Windows, MacOS X, MacOS Xserver, RISC OS, e probabilmente altri. Inoltre supporta anche la maggior parte dei server web esistenti. Ciò comprende Apache, IIS, e molti altri. E questo include qualsiasi server web che può utilizzare il binario PHP FastCGI, come lighttpd e nginx. PHP funziona sia come un modulo, o sia come un processore CGI.

Pertanto, con PHP si ha la libertà di scegliere praticamente qualsiasi sistema operativo e qualsiasi server web. Inoltre, si può anche scegliere se fare uso di una programmazione procedurale oppure orientata agli oggetti (OOP), o una combinazione di entrambe.

Con PHP non siete limitati soltanto ad un output in HTML. Le possibilità di PHP, infatti, includono l'abilità di generare immagini, files PDF e perfino filmati Flash al volo (utilizzando libswf e Ming). Sarete in grado di generare facilmente qualsiasi testo, come XHTML e qualsiasi altro file XML. PHP può autogenerare questi file, e salvarli nel file system, piuttosto che eseguire un printing esterno, o creare server-side cache per contenuti dinamici.

Una delle caratteristiche più importanti e significative di PHP è la possibilità di supportare una completa gamma di database. Scrivere una pagina web collegata ad un database è incredibilmente semplice utilizzando una delle specifiche estensioni del database (p.e., per mysql), o utilizzando un abstraction layer come PDO, o connettendosi a qualsiasi database che supporta lo standard Open Database Connection tramite l' estensione ODBC. Altri database possono utilizzare cURL o i socket, come CouchDB.

PHP fa anche da supporto per dialogare con altri servizi utilizzando i protocolli del tipo LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (in Windows) e innumerevoli altri. Potete anche aprire network sockets ed interagire usando qualsiasi altro protocollo. Inoltre supporta l'interscambio di dati complessi WDDX tra, virtualmente, tutti i linguaggi di programmazione web. A proposito di interconessioni, PHP supporta l'istanziazione dei Java Objects e l'utilizzo di questi come oggetti PHP in modo trasparente.

PHP possiede utili caratteristiche per l'elaborazione testi, che includono la compatibilità alle espressioni regolari di Perl (PCRE), e molte estensioni e strumenti per analizzare e accedere ai documenti XML. PHP standardizza tutte le estensioni XML sulla solida base di libxml2, ed estende le caratteristiche aggiungendo il supporto SimpleXML, XMLReader e XMLWriter.

E molte altre estensioni interessanti esistono, e sono categorizzate sia in ordine alfabetico che per categoria. E ci sono latre estensioni PECL che possono essere o no documentate all'interno del manuale PHP, come » XDebug.

Quali sono le differenze tra un sito statico ed uno dinamico?

La locuzione Web statico viene utilizzata per identificare un modo di progettare i siti web. Si parte dal presupposto che all'utente non sia consentito modificare lo stato e le informazioni contenute dal sito stesso.

I siti web statici sono stati la prima tipologia di siti web dato che sono relativamente semplici da realizzare e il web master deve preoccuparsi esclusivamente di creare le pagine che compongono il sito. La maggioranza dei siti web con il passare del tempo è migrata verso il web dinamico. Questo consente una manutenzione e aggiornamento del sito semplice veloce e consente una maggior interazione dell'utente pur essendo tecnologicamente più complessa di una implementazione statica.

Tutte quelle attività con grosse quantità di contenuti o prodotti che hanno l'esigenza di frequenti aggiornamenti (nuove offerte, pacchetti, prodotti, news, documentazioni, gallerie di immagini etc..) hanno la necessità di un sito dinamico. Quest'ultimo presenta un costo più elevato in fase di realizzazione (dato dalla presenza appunto del database e del CMS) che però in brevissimo tempo viene ammortizzato dall'assenza di costi di aggiornamento, aggiornamenti ad opere del cliente stesso.



Perchè è molto importante seguire gli standard W3C nello sviluppo di un sito web?

Il termine W3C significa World Wide Web Consortium. Il W3C si occupa di stabilire standard di riferimento per il Web. Realizzare un sito rispettando le linee guida del W3C significa non solo rendere i contenuti accessibili a tutti gli utenti, compresi coloro che sono affetti da una qualche forma di disabilità o utilizzano sistemi operativi non aggiornati e terminali obsoleti, ma anche rendere il sito più facilmente interpretabile dai motori di ricerca e quindi meglio posizionabile.



Differenza fra HTML e PHP

Cosa succede alle pagine HTML?

Quando arriva una richiesta di una pagina HTML da un browser, il server web compie 3 passi:



  1. legge la richiesta dal browser

  2. trova la pagina nel server

  3. manda la pagina al browser

Cosa succede alle pagine in PHP?

Invece di restituire una pagina HTML statica il server compie alcune azioni, secondo i comandi scritti nel codice PHP: il motore PHP compierà le decisioni necessarie per creare la pagina.

Il server web dunque:


  1. Legge la richiesta dal browser

  2. Trova la pagina nel server

  3. Compie le istruzioni scritte nel codice PHP

  4. Manda la pagina al browser

La differenza principale fra HTML puro e PHP è dunque che il primo viene interpretato dal browser, mentre il secondo viene eseguito sul server.

Cos’è Asp.Net

Prima di tutto va spiegato il concetto che Asp.Net non è un linguaggio di programmazione ma una tecnologia basta sul .NET Framework della Microsoft.


Si sente spesso dire: “scritto in Asp.net”, oppure “in linguaggio Asp.Net”, non esistono concetti più lontani dalla verità come questi.
Asp.Net è una tecnologia che deriva dall’ormai deprecato parente ASP (Active Server Pages), dal quale ha ereditato solo il nome e nient’altro.

Asp.Net è una tecnologia che lavora in maniera integrata con il server che la ospita. Questo fa sì che le sue istruzioni non vengano interpretate come con altre tecnologie, ma bensì compilate a livello nativo come software installati all’interno del server.


Per questo applicazioni e siti web che utilizzano tecnologia Asp.Net possono essere scritti in linguaggi differenti come:

  • Visual Basic .Net (diretto discendente del deprecato Visual Basic),

  • C# (si legge sharp, ed è una visione Microsoft del C++),

  • J# (altra visione Microsoft del Java),

  • C++ (molto utilizzato per creare applicazioni troppo poco per creare elementi web).

A cosa serve Asp.Net

Abbiamo detto che la tecnologia Asp.Net eredita le sue funzioni dal vecchio ASP, quindi deduciamo che il suo utilizzo sia principalmente orientato alla creazione di applicazioni o siti web basati su strutture lato server. Abbiamo anche detto che è una tecnologia compilata e non interpretata quindi, anche in questo caso, deduciamo che le sue prestazioni sono altamente notevoli in quanto ogni sito web può lavorare come un’applicazione installata all’interno del server e non come singoli file di testo elaborati e poi restituiti.

Asp.Net raggiunge il suo culmine durante le operazioni con i database, per i quali dispone diverse classi e metodi condivisi capaci di facilitare e velocizzare ogni operazione di interrogazione e modifica anche in maniera disconnessa. Da tutto questo si evince quanto possa essere potente e relativamente facile costruire applicazioni web basate completamente su database.




Condividi con i tuoi amici:
  1   2   3   4


©astratto.info 2019
invia messaggio

    Pagina principale