Common Gateway Interface. Dynamic HTML le risposte inviate al client sono (parzialmente o totalmente) create on-the-fly (al volo) dopo aver ricevuto il.

Slides:



Advertisements
Presentazioni simili
CGI in Python & WebWare Marco Barisione. 2 CGI CGI = Common Gateway Interface È un modello di comunicazione fra browser e server I programmi CGI sono.
Advertisements

Active Server Pages ed ADO. Scrivere ASP Le pagine ASP possono contenere codice HTML o XML Le parti del documento che racchiudono codice script vanno.
Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
Corso di Fondamenti di Informatica
JavaScript 1. Per cominciare.
Applet Java.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
(Appunti da Scott Mitchell, James Atkinsons - Active Server Pages 3.0 – ed. Apogeo) Le pagine ASP.
PHP.
Implementazione di un motore per la colorazione della sintassi in GtkSourceView Relatore: Riccardo Sisto Candidati: Emanuele Aina Marco Barisione.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
IL LINGUAGGIO HTML Il linguaggio html. Il linguaggio html. Utilizzo dei tag. Utilizzo dei tag. Script Browser I link I link Caricamento dei dati sul server.
Laboratorio di Progettazione Web Introduzione AA 2009/2010 Chiara Renso ISTI - CNR -
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Relatore:
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Internet e Web Dinamico
1 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Active Server Pages.
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Linguaggi per il Web Laboratorio di Applicazioni Informatiche II mod. A.
1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.
UNIVERSITÀ DI PERUGIA DIPARTIMENTO DI MATEMATICA E INFORMATICA Master di I° livello in Sistemi e Tecnologie per la sicurezza dell'Informazione e della.
Fondamenti di JavaScript Stefano Bistarelli Thanks to Roberto Bruni e Daniela Giorgetti.
PHP – Un’introduzione Linguaggi e Traduttori 2003 Facoltà di Economia
SW: di base, applicativo, linguaggi, licenze d'uso Dott. Andrea Vituzzi – Centro di Ricerca sui Sistemi Informativi.
Web: linguaggi e strumenti di produzione
APPLICAZIONI WEB In questo corso impareremo a scrivere un'applicazione web (WA) Marco Barbato - Corso di Applicazioni Web – A.A
ASP Lezione 1 Concetti di base. Introduzione ad ASP ASP (che è la sigla di Active Server Pages) è un ambiente di programmazione per le pagine web. La.
Realizzazione siti web Pagine web dinamiche - javascript.
1 Internet e nuove tecnologie Anno Accademico Prof. Flavio De Paoli Dott. Marco Loregian.
Ing. Enrico Lecchini BetaTre S.r.l.
JavaScript 1. Origine E uno dei primi linguaggi di scripting per il web sviluppato da Netscape nel 1995 E interpretato Ha alcune similarità sintattiche.
Come funziona il PHP.
Il PHP e il vostro sito cos'è e come funziona. HTML... Linguaggio formattazione Non interattivo Non dinamico.
HTML Creazione di moduli Prof.ssa Daniela Decembrino.
Elaborazioni server-side: dalle CGI al PHP
Introduzione alle ASP: primi passi negli script. Frosini Andrea Università degli studi di Siena Dipartimento di Scienze Matematiche.
Basi di Dati e Sistemi Informativi
Sistemi Informativi sul Web
Introduzione alla programmazione web
DiES - Conoscere lattualità una lezione di attualità, n nn nuova ogni giorno, a partire dall11 settembre 2001 un approfondimento settimanale una versione.
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
Applicazione Web Informatica Abacus Informatica Classe VIA 2008/2009 N.Ceccon INF (01) Revisione 4.0 settembre 2008.
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
JavaScript Programmare il client. Cenni storici Alice Pavarani2  Nasce nel 1995 (Netscape): da LiveScript a JavaScript  La risposta di Microsoft: Jscript.
INTRODUZIONE A JAVASCRIPT
Premessa Con i FORMS (moduli) l'utente può interagire con il sito spedendo un proprio commento, avanzando richieste senza necessità di scrivere via ,
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
Form o moduli HTML Esistono degli oggetti standard che permettono una certa interattività con l'utente. Un utilizzo completo e significativo di tali elementi.
Pagine ASP parte 1 Introduzione Stefano Schacherl.
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
1 Corso di Ingegneria del Web A A Domenico Rosaci 19 - Web Applications.
Programmazione Web Presentazione del corso /2015.
Analisi dettagliata e design
HTML HTML e il web.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Protocolli e architetture per WIS. Cronologia di Internet ricerche sulla commutazione di pacchetto (Leonard Kleinrock) 1967 Nasce il progetto.
1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.
ThisWayForSite Competenze Tecnologie Servizi Pacchetti Collaboratori.
Utilizzo base di Altervista. AlterVista AlterVista è una piattaforma web dove è possibile aprire gratuitamente un sito web, un blog Per aprire gratuitamente.
Eprogram informatica V anno.
PHP.  HTML (Hyper Text Markup Language)  CSS (Cascading Style Sheets)  Javascript (linguaggio di programmazione client)  PHP ( Hypertext Preprocessor.
LINGUAGGI DI PROGRAMMAZIONE E' un linguaggio formale dotato di una sintassi ben definita che viene utilizzato per scrivere programmi che realizzano algoritmi.
Corso Web Developer Lezione 2 – HTML e ASP. I limiti delle pagine HTML Nella lezione precedente abbiamo visto che con HTML e JavaScript è possibile scrivere.
Eprogram informatica V anno. Programmare in rete.
ASP – Active Server Pages - 1 -Giuseppe Tandoi ASP – Active Server Pages Tecnologia per lo sviluppo di pagine dinamiche.
1 Università della Tuscia - Facoltà di Scienze Politiche. Informatica 2 - a.a Prof. Francesco Donini Active Server Pages.

ADO Per gestire i database con tecnologia ASP si utilizzano strumenti ADO (ActiveX Data Objects): un'architettura che fornisce oggetti.
Free .NET Hosting - somee.com
Transcript della presentazione:

Common Gateway Interface

Dynamic HTML le risposte inviate al client sono (parzialmente o totalmente) create on-the-fly (al volo) dopo aver ricevuto il pacchetto di richiesta il contenuto delle pagine può variare di volta in volta in base a parametri diversi (ora del giorno, stato del sistema, dati trasmessi dal client). I motori di ricerca, per esempio, rispondono alle interrogazioni con delle pagine html contenenti link necessitano di supporto da parte del web server –CGI, Servlet: chiamata di programmi esterni –ASP, JSP, PHP: codice direttamente dentro le pagine html ed interpretato dal server (il client non lo può vedere) Tecnologie che consentono di mostrare su Web loutput di programmi

ASP (Active Server Pages) E uno standard Microsoft Sono le pagine che hanno lestensione.ASP Utilizzano ActiveX scripting (generalmente codice VBscript o JavaScript) Esempio: Hello World! Hello World! > <FONT SIZE

JSP (Java Server Pages) Risposta della Sun allASP di Microsoft Utilizzano codice Java embeddato nel file HTTP The current number is 1 The current number is 2 The current number is 3 The current number is 4 The current number is 5 The current number is 1 The current number is 2 The current number is 3 The current number is 4 The current number is 5 The current number is

PHP (PHP Hypertext Preprocessor) Creato da un privato (Rasmus Lerdorf) nel 1994 Distribuito con diversi Web servers (per es. Apache) Utilizza una sintassi simile al Perl or C <?php $a = 1; Function incrementa ($par) { return $par + 1; } $a = incrementa($a); echo(Now a is); echo ($a); ?> Now a is 2

web browser web server gateway program http CGI fisico connessione IP TCP sessione presentazione applicazione bla bla ? ? CGI: architettura Richiesta host

Richiesta di usuali di files Client GET /index.html HTTP/1.0 bla bla ? ? Server bla bla Il server risponde inviando il contenuto di un file che è presente nel file system.

Esecuzione di un CGI Client GET /cgi-bin/program?par1+par2 HTTP/1.0 Server program bla bla ? ? bla bla par1 par2 par1 par2 il server riconosce una chiamata ad un CGI dal fatto che la risorsa richiesta si trova in una directory particolare (es:

Organizzazione interna del server La configurazione del server web prevede la definizione di due directory: sito web cgi la directory interna corrispondente alla radice del sito web (viene specificato anche come viene acceduta dallesterno, generalmente come /) la directory interna corrispondente alla radice dellalbero degli eseguibili (viene specificato anche come viene acceduta dellesterno, tipicamente come /cgi-bin/) file system interno del server

Input e output del CGI program un pacchetto GET viene inviato quando: –Lutente specifica lURL di un CGI –Si clicca un link allURL di un CGI –Invio dati da una FORM con METHOD=GET un pacchetto POST viene inviato quando: –Invio dati da una FORM con METHOD=POST Linput di un CGI è una sequenza di valori o di coppie nome=valore I dati vengono mandati al server tramite pacchetti GET o POST del protocollo http.

La form HTML 1 - GET /form.html GET|POST /cgi-bin/program... HTTP Server form.html CGI program HTTP Server Server1 Server2 Client

Un esempio di FORM un esempio di form In quale città vivi? Reset Submit 1) Netscape 2) Explorer Che browser stai usando? In quale città vivi? Che browser stai usando? Netscape Explorer

Marcatori HTML per le FORM possibili attributi: METHOD=GET METHOD=POST ACTION= possibili attributi: TYPE=TEXT (input testuale) TYPE=CHECKBOX (selezione) TYPE=RADIO (selezione esclusiva) TYPE=SUBMIT (tasto per inviare i dati) TYPE=RESET (per cancellare i dati) NAME= mia_etichetta VALUE= valore_associato (se selezionato) CHECKED (selezionato per default)... (menù a tendina) possibili attributi: NAME= mia_etichetta

Pacchetto GET Referer: User-Agent: Mozilla/4.05 [en] (Win95; I) Host: Accept: image/gif, image/x-xbitmap, image/jpeg, */* Accept-Language: en Accept-Charset: iso ,*,utf-8 GET/cgi-bin/miofile?city=roma&brow=netscapeHTTP/1.0

Pacchetto POST Referer: User-Agent: Mozilla/4.05 [en] (Win95; I) Host: Accept: image/gif, image/x-xbitmap, image/jpeg, */* Accept-Language: en Accept-Charset: iso ,*,utf-8 Content-type: application/x-www-form-urlencoded Content-length: 23 POST/cgi-bin/miofileHTTP/1.0 city=roma&brow=netscape

Vs Ricerca Altavista sulla complessità... Indicato per grandi quantità di dati Dati in qualsiasi formato (testi, immagini, video) Solo in risposta ad una form GET Indicato per pochi parametri Solo parametri testuali Possibilità di inserire un URL con parametri opportuni allinterno di una pagina HTML es. POST

Interazione webserver-CGI come argomenti della linea di comando come variabili di ambiente come standard input Esistono tre modi per passare i parametri dal server al CGI: Il CGI invia la risposta al server sempre su standard output

Passaggio dei parametri Submit di una form (contiene coppie nome=valore) chiamata diretta ad URL (può contenere o meno coppie nome = valore) VARIABILI AMBIENTE LINEA DI COMANDO STANDARD INPUT GETPOST contiene = non contiene =

Passaggio sulla linea di comando il client invia una richiesta http: GET /cgi-bin/mioprog?val1+val2 HTTP/1.0 il server esegue: mioprog val1 val2 nel codice del programma mioprog.c i parametri potranno essere recuperati in questo modo: main(int argc, char** argv) { … argv[1]; /* contiene val1 */ argv[2]; /* contiene val2 */ … } main(int argc, char** argv) { … argv[1]; /* contiene val1 */ argv[2]; /* contiene val2 */ … }

Passaggio per standard input il client invia una richiesta http: nel codice del programma mioprog.c ci saranno istruzioni come: il server passa i parametri a mioprog dallo standard input oppure scanf(%s,stringa); char c = getchar(); POST /cgi-bin/mioprog HTTP/1.0 … (una linea vuota) nome1=val1&nome2=val2 POST /cgi-bin/mioprog HTTP/1.0 … (una linea vuota) nome1=val1&nome2=val2 al programmatore è lasciato il compito di fare il parsing della stringa

Passaggio con variabile di ambiente il client invia una richiesta http: il server esegue mioprog ma prima mette la stringa nome1=val1&nome2=val2 nella variabile di ambiente QUERY_STRING GET /cgi-bin/mioprog?nome1=val1&nome2=val2 HTTP/1.0 nel codice del programma mioprog.c ci saranno istruzioni come: char * str = getenv("QUERY_STRING"); al programmatore è lasciato il compito di fare il parsing della stringa

Dal gateway al server (solo tramite standard output) Se il nome del gateway program… … comincia per nph (non parsed header) Il server manda loutput del gateway program al client così comè … altrimenti Il server premette lheader del pacchetto http Il client aggiunge Content-type: type/subtype (una riga vuota) …il resto del pacchetto http

Considerazioni sui CGI è possibile scrivere un CGI in un qualsiasi linguaggio (es. C, PERL, JAVA, VisualBasic) ogni consultazione di un CGI prevede il lancio di un nuovo processo sul server (questo può essere troppo oneroso) cè un potenziale pericolo per la sicurezza dovuto al fatto che lapplicazione CGI viene lanciata dal processo server (con i privilegi di questultimo) è uno standard de facto. Un tentativo di standardizzazione (Common Gateway Interface RFC Project) può essere reperito qui: