Loading
Note di Apprendimento
Study Reminders
Support
Text Version

Linea di comando interattiva Oltre HTTP

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Ciao a tutti, benvenuti alla 4a settimana del tuo corso sullo sviluppo delle applicazioni moderne.Inizieremo questa settimana rivedendo alcune delle cose che abbiamo fatto prima e continuiamocon il tema principale di questa settimana. Ecco come accettare l'input utilizzando HTML.
(Riferimento Slide Time: 00.36)
Recall che abbiamo iniziato con un problema semplificato. Il nostro problema era un set di coinquilini chein realtà hanno condiviso una serie di eventi come guardare film o avere cenni insieme. Per ogni evento, uno e un solo coinquilino pagato per l'intera spesa. Tuttavia, nel tempo, il gruppo dicoinquilini aveva bisogno di conciliare i loro debiti o crediti. Il nostro problema era quello di creare un sistema, un'applicazione, che potesse essere utilizzata dai coinquilini.E potevano determinare la quantità di denaro che dovevano spettare al gruppo o dovevanoricevere dal gruppo. Alla fine la nostra applicazione dovrebbe essere su un computer. Ma proprioora, per semplificare il problema, supponiamo che ci sia un solo computer che ècondiviso dai coinquilini.
(Riferimento Slide Time: 01.48)
Certo, la cosa più importante che dobbiamo fare è lavorare davvero all'algoritmo cheverrà utilizzato da tutti i coinquilini. L'algoritmo è indipendente dal sistema di calcolo. Essopotrebbe essere utilizzato ovunque. L'idea dell'algoritmo è quella di rappresentare gli eventi per righe e singolespese dei coinquilini per colonne. Quindi, qualsiasi spesa da parte di un determinato coinquilino per un eventosarebbe inserita corrispondente alla riga per l'evento e la colonna del coinquilino.Dato questi dati, calcoleremmo la quota per capo per quell' evento. Per la quota di testa è semplicemente laspese effettive divise per numero di coinquilini. Questo per la quota di testa sarebbe sottrattodai soldi spesi da ogni coinquilino. Se il risultato della sottrazione è negativo, allora noiinterpretiamo che come i soldi che spettano a quel particolare coinquilino al resto del gruppo. Seil numero è positivo, interpretiamo che come il denaro che deve essere ricevuto da quel particolarecoinquilino dagli altri del gruppo.Avviso che la somma dell'intero per capo condivisioni deve essere pari a zero. Anzi, questo è l'invariante del problema. In altre parole, la somma sarà sempre zero indipendentemente dal numero di coinquilini oil numero di eventi. Usiamo questa idea per argomentare la correttezza del nostro algoritmo. Abbiamo bisogno diargomentare sulla correttezza prima di implementarlo anche su una macchina perché le macchine nonhanno intelligenza.
(Riferimento Slide Time: 04.02)
Avendo creato un algoritmo, il nostro prossimo passo è stato quello di provarlo. L'approccio più semplice è statodimostrato dal professor Sane usando semplicemente penna e carta. Ci sono ovviamente dei vantaggi elimitazioni di questa particolare tecnica di risoluzione del problema. Ma continueremo con la nostra storia. Uno dei problemi con questa cosa particolare è che non è basato su computer.(Fare Slide Time: 04.34)
Per renderlo basato su computer abbiamo sperimentato una soluzione basata su foglio di calcolo. La soluzione basata su foglio di calcoloci ha permesso di concentrarci sull'aspetto algoritmico reale, senzapreoccuparsi dei dettagli di come l'input deve essere dato al computer che si è occupato
di dal foglio di calcolo stesso. Non abbiamo nemmeno dovuto preoccuparci dell'output che è stato preso anchecura dal foglio di calcolo.Questo ci ha permesso di concentrarci sui dettagli dell'algoritmo. E infatti, risolviamo esplicitamente come l'invarianteci abbia aiutato a garantire che i nostri calcoli fossero corretti.(Fare Slide Time: 05.16)
Abbiamo poi proceduto alla parte successiva in cui abbiamo affrontato esplicitamente l'input del terminale e l'output del terminale. Il terminale è forse un sistema input-output più semplice, dove l'input viene accettato come testoe l'output visualizzato come semplice testo. Non esiste un'interfaccia grafica. Ciononostante, l'idea diun programma di riga di comando che funziona su un terminale ci permette di esaminare alcuni concetti semplicicome interattività.Domanda rapida: Che il dispositivo su cui si sta guardando questa lezione sia interattivo?Abbiamo visto che la non interattività è quando tutte le informazioni necessarie al funzionamento del computer dila chiave del programma viene data prima che il programma inizi a funzionare. E l'interattività è necessaria quando leinformazioni richieste per il funzionamento del programma sono disponibili dopo l'avvio del programma. Noiabbiamo dimostrato la versione non interattiva della riga di comando e ti ha fatto fare l'interattivo
versione della riga di comando tramite un incarico. Quello che vedete sullo schermo è un diagramma di bloccodell'applicazione della riga di comando.(Fare Slide Time: 06.33)
La versione di riga di comando interattiva sembra una cosa del genere. Era ancora la versione di comandoversione tranne che l'intera sequenza di comandi doveva essere data dopo l'avvio del programma.Quello che vedete è un input di esempio, una sequenza di comandi dove alcuni amici stanno registrandostessi, ci sono alcune spese. Ci sono alcuni report e un unico comando chiamato &ldash endche racconta al nostro sistema che non ci sono più comandi che seguono.Dato questo, il programma interattivo della riga di comando ha visualizzato l'output come prima; ha accettato l'input, ha eseguito le elaborazioni e visualizzato l'output come prima. Modifichiamo poi quellaversione di riga di comando interattiva, in modo da visualizzare l'output utilizzando HTML. La markup di basedel sistema ipertestuale (ovvero il web). Principalmente, ci ha permesso di fare per diventareindipendente dal dispositivo di uscita.Nel senso che, l'output prodotto stava semplicemente segnando i dettagli del display, non hapreoccuparsi di come quei dettagli sono stati implementati sul dispositivo di output. Infatti, l'intero sistema di markuppotrebbe essere trasportato sulla rete anche verso una macchina remota e potrebbe essere visualizzato su un
macchina remota. Ciò non è stato possibile su un display di testo. HTML ci ha permesso di essere indipendenti dail dispositivo di output.Un buon apprezzamento di questo problema arriva quando si cambia in realtà la versione della riga di comando interattivaad un'interfaccia grafica, come quella dimostrata dal professor Sane. Itha tirato fuori il concetto di modello e di vista. Un modello è quando in realtà si dispone di un calcoloche si verifica nel programma e si visualizza quanto viene presentato. Separare questi dueconsente di visualizzare l'output in tutta la rete, qualcosa che non era così facilmente possibileprima.
Questo è un buon punto per mettere in pausa e rivedere il materiale che è stato coperto finora. Oraproseguiremo con il problema di accettare input via HTML.(Fare Slide Time: 09.25)
Nota che, il modo in uscita è stato separato dal calcolo e dal dispositivo di output,compresa la possibilità che i dispositivi di output siano effettivamente in tutta la rete. Vorremmoimmaginare qualcosa di simile anche per l'input. Pensiamo concettualmente all'input come in arrivo inda qualche tipo di client e la nostra applicazione di fair share sarebbe lì che chiameremo &ld'ora un serverda ora.
potrebbero essere sulla stessa macchina, ma perché sono concettualmente separati, ora anche loropotrebbero essere in tutta la rete. Ecco perché pensiamo a un sistema client separato e a un sistema serverseparato. Il cliente è quello che verrà usato dai nostri coinquilini. E l'applicazione equasarà visibile al client come applicazione sul lato client. Qualunque sia l'applicazionein realtà accadrà sul server.Tra il client e il server, ci sarà qualche comunicazione, alcune informazioni che verranno trasferite. Questo è simile al modo in cui l'output è stato visualizzato su una rete. Nella slide chevedi, abbiamo linee nere che indicano l'ora sul lato client e il tempo sul lato server. Concettualmente i clienti, ovvero il nostro gruppo di coinquilini, carichiamo una qualche pagina HTML,che andrà a raccogliere input.Recensione che l'input sarà una sequenza di comandi. Una volta inseriti i comandi,i nostri clienti lo inoltreranno per trasferire le informazioni dal lato client al lato server. Il server riceverà quindi le informazioni e lo elaborerà. Eseguirà i calcolio elaborazioni richieste dai comandi e creerà una pagina di risultato. Questo è identico al nostroesercizio precedente dove la nostra applicazione di comando ha generato l'output utilizzando HTML.Questo è ciò che il server farà e che la pagina HTML verrà ora trasferita al client.Il sistema client ora caricerà quella pagina e lo mostrerà agli utenti. Dal punto di vista dei coinquilinivedranno di avere un'applicazione che ha accettato il loro input. Hanno presentatoi dettagli di quell' input. Non si sono davvero preoccupati di dove fosse l'applicazione. Ma i risultatisono stati visualizzati sul proprio sistema.Pictorialmente, questo è ciò che sta accadendo. Le informazioni che vengono inoltrate dal client al serversono chiamate dati POST. Post è un meccanismo che HTTP definisce per comunicare le informazionidal client al server. La risposta del server è ciò che viene prodotto dal server inrisposta alle informazioni ricevute, ma rappresentate in HTML, tale risposta viene inviataal client.
(Riferimento Slide Time: 13.19)
Questo significa che dobbiamo capire come sono impostati i server web. Non abbiamo bisogno di entrare nei dettaglia questo punto, dobbiamo solo capirlo concettualmente. Un server web è sostanzialmente un altro programma. Sul tuo schermo si vede un sistema Ubuntu che ha installato un server HTTP.Fortunatamente, Ubuntu per impostazione predefinita ci offre una configurazione di lavoro e il fatto che abbiaconfigurazione di lavoro di successo è mostrato dalla pagina che ubuntu carica quando impostiamo il server.
Lo screenshot è un intero browser web e quindi la pagina effettiva appare più piccola. Inslide successive ingrandiamo questa parte della pagina, in modo che sia ben visibile.
(Riferimento Slide Time: 14.26)
La configurazione predefinita di HTTP su ubuntu è nella directory /etc/apache2 e il file èchiamato apache2.conf. Il web server richiederà una certa directory all'interno della quale esisteranno i suoi file HTML. Questo si chiama &ld'root document root del server web e per impostazione predefinita su ubuntu è/var/www/html e il file html predefinito è index.html. A breve esamineremo l'ideadi cgi-bin.
Ma per ora, noteremo che la directory predefinita per l'interfaccia del gateway comune CGI è/usr/lib/cgi - bin su sistemi ubuntu. È possibile che le configurazioni predefinite varieranno susistemi diversi. L'idea di quale particolare directory cambierà su sistemi diversi,tuttavia, l'idea che ci sia qualche file di configurazione, c'è qualche directory in cui c'è una root del documento predefinitoe c'è qualche directory in cui c'è un cgi - bin predefinito Queste ideeci saranno sempre.
(Riferimento Slide Time: 16.05)
Ecco la pagina di ubuntu predefinita. Questa parte è tipicamente standard ubuntu e questa parte CGI demo èqualcosa che abbiamo modificato per dimostrare come funziona CGI bin. L'idea di CGIbin è quella di eseguire programmi. Un server web generalmente interagisce nel seguente modo:
• riceve alcune richieste da qualche client,• risponde a tale richiesta e• La richiesta potrebbe restituire al client il file index.html.
Beh, in risposta a ciò, il server raccoglierà il file html di index dot e lo trasferirà attraverso la reteal client richiedente. Quindi, un'interazione server è una richiesta e una risposta. Ovvero un'interazionedel server. Il sistema HTTP consente a un server di rispondere ad una serie di coppie di rispostedi richiesta di interazioni. Ognuna di queste interazioni sono in realtà indipendenti l'una dall'altra.In altre parole, per quanto riguarda il server, il server non ricorda quanto accaduto inla precedente interazione che è una richiesta di risposta quando si tratta effettivamente dell'interazione correntedi richiesta e risposta. Diciamo che il server è apolide. Se il web server è solorispondendo raccogliendo file e inviandoli attraverso la rete al client, allora questosarebbe un caso molto poco interessante. Sarebbe più interessante se il codice del server, le informazioni di processoe poi risponderebbero.
Per elaborare le informazioni, avremo bisogno di eseguire programmi che elaborino le informazioniricevute. Questa possibilità di eseguire programmi e elaborare le informazioni ricevute è quello cheil sistema bin CGI consente di fare. Nella directory del bidone CGI, qualunque sia in questocaso particolare di ubuntu, è / usr/lib/cgi-bin, è possibile posizionare i programmi che si desidera che il serverutilizzi in risposta alle informazioni che ottiene.Vi illustreremo due programmi il programma di visualizzazione dell'ambiente e il programma Helloworld. Il programma di ambiente show è un semplice script shell che visualizzerà le variabili di ambientedel server al client. Per inciso, queste variabili di ambiente sonosempre disponibili per qualsiasi programma CGI. Il prossimo programma è un piccolo script di shell, chedimostra come i programmi Java possano essere effettivamente eseguiti dal server.Questo sarebbe un buon punto perché abbiamo davvero bisogno di quella possibilità di eseguire programmi Java tutti i nostri programmisono stati scritti in Java. A un certo punto in seguito vedremo anche come sarà la nostra applicazione di fair shareche sembrerà usare un sistema CGI.(Fare Slide Time: 19.58)
Ecco uno script di shell, che mostra l'ambiente, è uno script bash. Speriamo che questi comandisiano abbastanza evidenti. Le prime due righe sono righe richieste fuori da una risposta del server.Recensione che questo particolare script verrà eseguito quando si fa clic su questo particolare link. Così, il
server sta andando a stampare per la prima volta queste due righe che sono richieste dal protocollo HTTP e poi cheeseguirà queste righe. Osservare che ciò che questo esecutore sta semplicemente creando una pagina HTML.(Fare Slide Time: 20.55)
Inizio della pagina HTML è finita qui, parte iniziale della pagina di risposta.(Fare Slide Time: 21.05)
Questo comando ottiene in realtà i dati dell'ambiente e li elabora utilizzando il comando awkper creare una tabella HTML della variabile di ambiente ed è valore.(Fare Slide Time: 21.21)
E infine c'è la parte di navigazione della risposta HTML. Questo semplice script CGI costruiscela pagina web effettiva della risposta. La webpage quando clicca su quello show ambienteCGI link, la webpage sembrerebbe una cosa del genere.(Fare Slide Time: 21.41)
Veramente questa pagina web è stata modificata utilizzando fogli di stile. Ecco perché sembra bello. C'èun bel titolo bar i nomi delle variabili di ambiente sono a sinistra, i valori sono sulla destrae vengono presentati in modo ineguato. Se si rimuovono i fogli di stile ci sarebbe semplicemente una serie di output; una pagina HTML bland.
(Riferimento Slide Time: 22.15)
Andiamo avanti e guardiamo come eseguire i programmi Java tramite il metodo CGI bin, ecco un sempliceprogramma Java o HelloWorld che stampa semplicemente Hello Java CGI world. Sul browser, questo saràlook come un semplice testo. Essendo un programma Java, dobbiamo semplicemente compilarlo per ottenere il file di classecorrispondente da eseguire. Questo file di classe verrà quindi eseguito tramite uno script shell.(Fare Slide Time: 23.01)
I passi nel dettaglio sarebbero una cosa del genere:• scriveresti il tuo programma Java HelloWorld come di consueto.
• La compilerà utilizzando Javac come di consueto.• Questo comporterà di nuovo un file di classe dot HelloWorld come di consueto.Ma, ora copierà questo file di classe nella directory CGI del proprio server. Nel nostro esempio, la nostra directoryCGI è slash user slash lib slash cgi-bin. Ora questo file di classe è pronto per l'esecuzione.Ma come lo eseguiamo? Avremo bisogno di uno script di shell che segue.Ancora, lo script della shell verrà prima perché è lo script di risposta. Si emana per la prima volta queste due righe.Java richiederà la configurazione di parte di classe in modo che la directory, dove siano i file di classe, siadisponibile nel percorso. È quindi possibile eseguire il file di classe HelloWorld utilizzando il metodo consuetoJava HelloWorld. Ma questo file di classe era già copiato nella directory CGI bin come prima. La cosa finaleche ora devi fare è nel tuo indice dot HTML, creare questo link.Recensione che quando si preme questo particolare link, lo script HelloWorld.sh che è questo script è iluno che verrà eseguito. E questo script di nuovo a turno eseguirà il programma effettivo HelloWorld.(Fare Slide Time: 24:52)
E quando lo fai, il tuo browser ti mostrerà l'output HelloWorld Hello Java CGI worldcosì. Ma perché è un browser, lo abbiamo ingrandito e mostrarlo qui. Questo è un buon puntoper mettere in pausa e rivedere il materiale che hai imparato finora.
(Riferimento Slide Time: 25:16)
Ora andiamo avanti e cerchiamo di guardare come la nostra applicazione di fair share si occuperebbe di HTTPdal lato client che è per i coinquilini. Dovremmo prima caricare una pagina HTML, chechiederà l'input. Probabilmente sembrerebbe una cosa del genere, quando guardo l'intero browser web.(Fare Slide Time: 25:50)
Lasciateci ingrandire e concentrarci solo sulla parte in cui si trova la nostra applicazione. Sembrerebbe qualcosacosì. Direbbe il benvenuto. Questa è una versione web dell'applicazione di fair share. E chechiederà ai coinquilini di entrare nel comando, sequenza terminata da un fine. Ecco alcuni
sequenze di comando che i nostri coinquilini sono entrati. Avrebbero quindi premuto il pulsante di inoltroal fine di trasferire le informazioni che hanno inserito nel server.(Fare Slide Time: 26:35)
Questa parte è ciò che si verifica quando l'utente che è il nostro coinquilino deve inoltrare. Le informazioni chesono entrate sono organizzate come dati post e inviate al server.(Fare Slide Time: 26:56)
Il server eseguirà il calcolo e presenterà l'output in formato HTML. Che,presumibilmente, sembrerebbe una cosa del genere. Ma sappiamo già come fare perché questo è
cosa abbiamo fatto per generare l'output utilizzando HTML. Questo era il nostro modo di iniziare ad imparare HTML comebene come idea dei fogli di stile a cascata. Questo è quello che abbiamo fatto la scorsa settimana.(Fare Slide Time: 27:26)
Ecco uno script di shell che si potrebbe voler aggiungere a CGI bin. Quello che fa è, come di consueto, stampareout le due righe richieste dal protocollo HTTP, impostando il percorso di classe alla radice del documentoche è l'utente lib CGI bin e poi elabora l'input che ha ricevuto. Se il metodo di inputè post, che è quello che useremo e il numero di byte di input è piùdi zero, allora leggerà quel numero di byte in questa variabile dall'input standard.Next la variabile verrà stampata ed elaborata utilizzando il comando awk. Poi, saràelaborato utilizzando il comando sed to remove to remove to replace the plus characters by a space character.E poi il comando sed successivo sostituirà &ldL %0D%0A il codice HTML BR a break. Questo output di processoviene quindi dato come input standard alla nostra Java fair share HTML versione interattiva HTML.Quindi, la sequenza degli eventi è una cosa del genere.I nostri coinquilini premono &ldà inoltrare il tasto e inviare i dati. Il sistema HTTP definisce il formato post. Il formato sembra una cosa del genere.(Fare Slide Time: 29:22)
I nostri coinquilini avevano digitato lo spazio f 1 spazio f 2 new line scapito spazio f 2200, nuova lineae così via. Quello che fa il browser è che ogni spazio è sostituito da un carattere più. Eogni nuova linea è sostituita da zero D% zero A che incidentalmente sono valori ASCIIper il ritorno a capo e la nuova linea. Questo consente al browser di inviare un singolo flusso di testo come dati di inputal server.Ecco perché, abbiamo bisogno dello script che assumerà nei particolari dati inviati dail client e elaborandolo in modo tale che le linee originali dei comandi vengano recuperate. Quei comandiche vengono recuperati vengono quindi dati al nostro consueto programma. Ricordiamo che il nostro programma la versione HTML interattivadel programma ha preso in input una serie di righe di comandi e generato un output HTML.Quindi, il modo in cui abbiamo impostato il sistema è quando gli utenti premono, i dati post arrivano al serverdove esiste la nostra effettiva applicazione di condivisione, quale applicazione? Quello che avevamoscritto la scorsa settimana; un'applicazione di produzione HTML. Introduciamo uno script di shell in - tra,che convertirà i dati post nell'input che la nostra applicazione Java richiede. Ecco tutto.(Fare Slide Time: 31:16)
Torna indietro al modo in cui sembra la nostra applicazione lato client. La pagina HTML che è statapresentata ai nostri coinquilini sembra questa. E abbiamo visto che contiene una casella di testo, un'area di testodove i coinquilini digitiamo nei comandi. Questa parte del codice in realtà assomiglia a questo. Noiutilizziamo il modulo di elemento HTML per accettare realmente l'input e inviarlo al server.Come fare? Il modulo contiene un numero di componenti differenti. In primo luogo, essodefinisce il metodo con cui dovrebbe comunicare le informazioni al server. Nel nostro caso,useremo il metodo post che è il motivo per cui specifichiamo post qui.(Fare Slide Time: 32:27)
Poi racconta al server qual è il particolare, allora bisogna dire al server che lo script sul serverdeve essere eseguito quando i dati vengono ricevuti tramite post. Da notare che queste informazioni sono disponibilise queste informazioni sono specificate sulla pagina web del client.(Fare Slide Time: 33:08)
Qualunque sia le informazioni che sono state raccolte dalla pagina HTML del client riceveranno un nome&ldai comandi, il nome di cui hai bisogno è scritto nel modulo qui sopra. Questo è il nome dache il nostro server riconoscerà il comando valido.(Fare Slide Time: 33:33)
L'azione di trasferimento dei dati del modulo, questo è il dato del modulo al server verrà eseguita daquesto tipo di input. Questo tipo di input crea un pulsante con l'etichetta &ldora Invia sopra.
(Riferimento Slide Time: 33:52)
Questo tipo di input farà l'azione di cancellazione dei dati del modulo. Non vi è alcun invio, qualunque sia (il dato del modulo) viene inserito viene cancellato e si ottiene di nuovo un'area vuota. Notate questa parte, questo nome&ldé Comandi è esattamente quello che avevamo usato qui sopra. Questa intera linea è ciò che il serverriceverà. Se il server riceve questo che il nostro script di shell deve prima utilizzare il comando awk adividere questa intera stringa in due parti prima della parità di segno e dopo la parità di segno.La seconda parte, dopo la parità di segno, è quella che dobbiamo elaborare. Qualunque cosa ci siadopo l'uguale segno viene poi elaborato dal comando sed che prima guarderà i caratteri piùe li sostituirà per spazi. E poi il comando successivo sed che assumerà questi caratteri“ %0D%0A ” e li sostituirà per nuove linee. È così che recupiamo le linee di comandi di cuiabbiamo bisogno.
(Riferimento Slide Time: 35:21)
Questo è ciò che viene illustrato in questa parte delle slide. I dati post arrivano come comandi uguali aquesta intera stringa. Questo script che abbiamo visto prima dei processi che l'awk utilizzerà l'uguale oil carattere separatore e stampa la seconda parte che si trova dopo l'uguale al comando sed willsostituirà i segni più dagli spazi. Poi sostituirà il “ %0D%0A ” grazie alla rottura del codice HTML.Questo risulterà nei singoli comandi sulle singole linee, qualcosa che la nostra equaapplicazione prevede.Come sappiamo che prevede? perché l'abbiamo scritto la scorsa settimana. La serie di comandi è quindidato come input per la nostra applicazione di produzione HTML interattiva.
(Riferimento Slide Time: 36:24)
E questo produce la pagina HTML che vediamo. Riraccogli la foto molto chiaramente.I nostri coinquilini caricano la pagina iniziale, inserisciti i comandi e premere il pulsante di inoltro. Poi il browserprende tutto ciò che è stato scritto dai comandi che sono stati dati dai coinquiliniviene convertito in post inviati al server. Il server riceve i processi postche per recuperare la sequenza di comando compresa dal nostro programma Java HTML.Avendo ricevuto i comandi, il programma Java produce un HTML che viene inviato dal serverback to the client come risultato di questo inoltro. Amici, ora abbiamo la nostra prima applicazione web. Abbiamo separato la parte di output in ingresso dalla parte di elaborazione. La parte di elaborazione, il modello può potenzialmente essere remoto. E le viste che vengono presentate sul lato client, la vista inizialee la vista di risposta; sono completamente sul lato client.È questa separazione che ci ha permesso di creare applicazioni web. Perché si tratta di un'applicazione web?Perché i dati reali vengono trasferiti attraverso il web e c'è un server che sta elaborando l'informazionee rispondendo. Da notare che sebbene dal lato client, cioè; i nostri coinquilini,vedi un'applicazione molto grafica sul lato server, l'elaborazione è quasi che utilizzi sempre le righe di comando. Ci fermeremo a questo punto. Grazie e ci vediamo nella prossima sessione.