11 proxy server - ajax - protocollo ftp proxy server - ajax - protoc… · 11. proxy server –...

14
Telematica II 11. Proxy Server – AJAX – APACHE Protocollo FTP Corso di Laurea in Ingegneria Informatica A.A. 2009-2010 2° Semestre Prof. Giovanni Pascoschi Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni 2 Proxy Server Proxy Server Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni 3 Proxy server un proxy server si pone come intermediario tra client e server e stabilisce se e come rispondere al client funziona come un meccanismo di cache il cui obiettivo è ridurre l’overhead della rete client1 Proxy server client2 HTTP request HTTP response HTTP request HTTP request origin server2 origin server1 HTTP response HTTP response principio di località temporale internet Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni 4 Proxy server proxy di cache (finalizzata alla riduzione delle latenze e dell’overhead) risposte a richieste multiple agli stessi URL possono essere salvate in una locazione intermedia per una maggiore efficienza nella gestione delle risposte di norma il proxy risiede sulla stessa LAN del client Vantaggioso per bassi valori di cache miss (non presenza del contenuto nella cache del proxy) proxy di filtro (finalizzato alla sicurezza) esigenze di sicurezza o di controllo degli abusi di una rete possono richiedere l'esecuzione della richiesta solo in casi specifici in caso contrario viene fornito un messaggio di mancata autorizzazione uso di una black list (allowed/not allowed domains) esistono due tipi di proxy server

Upload: others

Post on 23-Sep-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 11 Proxy Server - AJAX - protocollo FTP Proxy Server - AJAX - protoc… · 11. Proxy Server – AJAX – APACHE – Protocollo FTP Corso di Laurea in Ingegneria Informatica A.A. 2009-2010

Telematica II11. Proxy Server – AJAX – APACHE – Protocollo FTP

Corso di Laurea in Ingegneria InformaticaA.A. 2009-20102° SemestreProf. Giovanni Pascoschi Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni2

Proxy Server

Proxy Server

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni3

Proxy server

un proxy server si pone come intermediario tra client e server e stabilisce se e come rispondere al client funziona come un meccanismo di cache il cui obiettivo è ridurre l’overhead della rete

client1

Proxyserver

client2

HTTP request

HTTP response

HTTP request HTTP request

origin server2

origin server1

HTTP response HTTP response

principio di località temporale

internet

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni4

Proxy server

proxy di cache (finalizzata alla riduzione delle latenze e dell’overhead)risposte a richieste multiple agli stessi URL possono essere salvate in una locazione intermedia per una maggiore efficienza nella gestione delle risposte di norma il proxy risiede sulla stessa LAN del clientVantaggioso per bassi valori di cache miss (non presenza del contenuto nella cache del proxy)

proxy di filtro (finalizzato alla sicurezza) esigenze di sicurezza o di controllo degli abusi di una rete possono richiedere l'esecuzione della richiesta solo in casi specifici in caso contrario viene fornito un messaggio di mancata autorizzazioneuso di una black list (allowed/not allowed domains)

esistono due tipi di proxy server

Page 2: 11 Proxy Server - AJAX - protocollo FTP Proxy Server - AJAX - protoc… · 11. Proxy Server – AJAX – APACHE – Protocollo FTP Corso di Laurea in Ingegneria Informatica A.A. 2009-2010

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni5

Criteri di caching #1

si tratta di una tecnica per la riduzione delle latenze e dell’overhead di rete

il caching può essere client-side, server-side (cache origin server) o intermedia (mediante un proxy)

la cache server-side riduce i tempi di computazione di una risposta, ma non ha effetti sul carico di rete

le altre due (client-side e proxy-side) riducono il carico di rete

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni6

Criteri di caching #2

HTTP 1.0 si basava su tre header per il cache management: Expires: il proxy server specifica al client la data di scadenza di una risorsa tramite una label (p.e. utilizzando un Time to Live)If-Modified-Since: il client richiede la risorsa solo se modificata dopo una certa data (p.e. la data di Expires) . Richiede una gestione del tempo comune tra client / proxy server e server origin (orologi di sistema sincronizzati)Pragma: no-cache: Fornita dal server, istruisce il client di non fare cache della risorsa in ogni caso

HTTP 1.1 introduce due ulteriori tipi di cache control: Server-specified expiration (politica deterministica delle scadenza gestite dal proxy server tramite parametri di scadenza per ciascuna risorsa)Heuristic expiration (politica euristica/adattiva da parte del server per quanto riguarda la scadenza non prefissata/esplicitata di alcunerisorse nella cache si fa in maniera cumulativa per le risorse senza scdenza prefissata piu’ semplice da gestire)

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni7

Criteri di caching #3

validazione della risorsa in cache

anche dopo la scadenza (dopo l’expires), nella maggior parte dei casi, una risorsa non viene modificata sull’origin server e quindi la risorsa in cache continua a risultare valida

un modo semplice per fare validazione da parte di un cache server è

usare HEAD: viene inoltrata una richiesta e verificata la data di ultima modifica (necessita di una richiesta preliminare supplementare)

fare una richiesta condizionale: se la risorsa è stata modificata, viene regolarmente fornita la nuova risorsa, altrimenti viene fornita la risposta 304 (not modified) senza body della risposta. Questo riduce il numero di richieste

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni8

Ajax

Ajax - panoramica

Page 3: 11 Proxy Server - AJAX - protocollo FTP Proxy Server - AJAX - protoc… · 11. Proxy Server – AJAX – APACHE – Protocollo FTP Corso di Laurea in Ingegneria Informatica A.A. 2009-2010

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni9

AJAX - panoramica

AJAX Asynchronous Javascript and XML

AJAX non è una tecnologia e’ una tecnica di sviluppo web per creareapplicazioni interattive

L'intento di tale tecnica è quello di ottenere pagine web che rispondono in maniera più rapida, grazie allo scambio in background di piccoli pacchetti di dati con il server

L’intera pagina web non deve essere ricaricata ogni volta che l'utente effettua una modifica (con risparmio di codice html per ciascuna pagina web)

Questa tecnica riesce, quindi, a migliorare l'interattività, la velocità e l'usabilità di una pagina web

gli utenti non si rendono conto che c’è del codice in comunicazione con il server: il web-site si comporta come se stesse rispondendo instantaneamente (usabilità "desktop-like")

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni10

AJAX - esempi

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni11

Modello classico applicazioni web #1

Il modello classico di un’applicazioneweb funziona in questo modo:

La maggior parte delle azionidell’utente (click, inserimentotesto, spostamenti del mouse, ecc) generano l’invio una HTTP request indietro al server

Il server effettua delle elaborazioni(p.e. recupero di dati su DBMS, interfacciamento con sistemilegacy, ecc) e ritorna una paginaHTML al client

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni12

questo approccio puo’ creare dei problemi agli utenti: ad ogni richiesta l’utente deve attenderel’utente vede l’applicazione inviare direttamente al server dei dati

Modello classico applicazioni web #2

Page 4: 11 Proxy Server - AJAX - protocollo FTP Proxy Server - AJAX - protoc… · 11. Proxy Server – AJAX – APACHE – Protocollo FTP Corso di Laurea in Ingegneria Informatica A.A. 2009-2010

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni13

Modello Ajax #1

un’applicazione Ajax elimina la natura“intermittente” (start – stop – start – stop) dell’interazione sul web

viene utilizzato un intermediario (motoreAjax), fra utente e il serverinvece di caricare una pagina web, all’inizio della sessione, il browser carical’Ajax engine, scritto in JavaScript and usualmente associato ad un frame nascostol’Ajax engine permette l’interazionedell’utente con l’applicazione un manieraasincrona, indipendentemente dallacomunicazione con il server

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni14

Modello Ajax #2

Every user action that normally would generate an HTTP request takes the form of a JavaScript call to the Ajax engine

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni15

Mix di tecnologie in Ajax

Ajax incorpora diverse tecnologie (XHTML, CSS, DOM, XML, XSLT, Javascript , SOAP)

quella che interessa maggiormente questo corso e che è il puntofocale di Ajax è

XMLHttpRequest

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni16

XMLHttpRequest

l’oggetto XMLHttpRequest permette al programma lato client in Javascript di fare richieste HTTP (GET & POST) al server senzaricaricare tutte le pagine e senza bloccare l’utente richiede solo unaparte dei dati presenti per una determinata risorsa

questo oggetto JavaScript fu introdotto originariamente in Internet Explorer 5

si puo’ usare l’oggetto XMLHttpRequest non solo per richiedere datiXML

Page 5: 11 Proxy Server - AJAX - protocollo FTP Proxy Server - AJAX - protoc… · 11. Proxy Server – AJAX – APACHE – Protocollo FTP Corso di Laurea in Ingegneria Informatica A.A. 2009-2010

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni17

Vantaggi Ajax

lato Clientpuo’ produrre un workflow verso l’utente senza interruzionirisparmia banda inviando solo le nuove informazioni (delta info)da’ la possibilità di gestire nuovi tipi di interfacce utente non possibili nel modello tradizionale

lato sviluppatorefornisce una via di mezzo tra la progettazione web sofisticata (Java applets e Flash) e quella semplice tradizionale HTMLnon richiede software di terze parti (Java o Flash) si incapsula nel normale codice di sviluppo dei siti web

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni18

Svantaggi Ajax

lato Client poca compatibilità con browser datati e molti dispositivi mobilicapacità limitate rispetto alla gestione multimediale, interazionecon webcam e stampanti e grafica real-timeprima attesa lunga per il caricamento di siti Ajaxproblemi con i pulsanti back/forward e i bookmarks

lato sviluppatoretecnica utilizzata ed abusata da “cattivi” programmatoripossibilità di avere browser con JavaScript disabilitatositi con troppo codice puo’ rallentare il browser

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni19

Web Server Apache - panoramica

Web Server Apache - panoramica

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni20

Web server – panoramica su Apache

Il più diffuso web server open-source è Apache, giunto alla versione 2.2.3, e disponibile per vari S.O. tra cui Windows e Linux

Windows (in alcune versioni) possiede al suo interno un web server (Internet Information Services o più brevemente IIS), ma è preferibile (specialmente nello sviluppo di applicazioni PHP) l'utilizzo del server Apache.

Apache è considerato in alcune situazioni un web server superiore ad IIS

inoltre è anche il web server che più comunemente viene messo a disposizione dai fornitori di servizi di hosting

Page 6: 11 Proxy Server - AJAX - protocollo FTP Proxy Server - AJAX - protoc… · 11. Proxy Server – AJAX – APACHE – Protocollo FTP Corso di Laurea in Ingegneria Informatica A.A. 2009-2010

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni21

Installazione

http://httpd.apache.org/download.cgi

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni22

Configurazione di Apache

Per configurare il server si utilizza il file di testo httpd.conf, che su macchine Linux si trova di solito in /etc/httpd/

Il file di configurazione è formato da una serie di direttive

Operativamente, è composto da un demone, in ambiente UNIX, o da un servizio, in ambiente Windows, che si basano sulle impostazioni contenute nel file di configurazione httpd.conf

Gestisce varie caratteristiche di sicurezza e permette di ospitare diverse estensioni per pagine attive (o dinamiche), come PHP o Jakarta/Tomcat

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni23

Direttive del server Apache #1

con valori di default: – Listen 80 indica la porta TCP sulla quale il server è in

ascolto– User nome dell’utente con il quale verrà eseguito il

server e determina i file a cui ha accesso Apache – Group gruppo di appartenenza dell’utente con il

quale il server è in esecuzione

– ErrorLog indica il file di log nel quale vengono registrati tutti gli errori del server

– CustomLog indica il file di log ed il suo formato (p.e.utilizzato per fare statistiche, ved. Google Analytics)

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni24

Direttive del server Apache #2

con valori da modificare/configurare: – ServerAdmin indirizzo e-mail dell’amministratore del

server

– ServerName nome dell’host su cui gira Apache

– DocumentRoot directory a partire dalla quale sono contenute tutte le pagine HTML

– DirectoryIndex pagina predefinita che viene restituita al client nel caso si specifica solo il nome dell’host

Page 7: 11 Proxy Server - AJAX - protocollo FTP Proxy Server - AJAX - protoc… · 11. Proxy Server – AJAX – APACHE – Protocollo FTP Corso di Laurea in Ingegneria Informatica A.A. 2009-2010

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni25

Esempio di file httpd.conf

## Based upon the NCSA server configuration files originally by Rob McCool.## This is the main Apache server configuration file. It contains the# configuration directives that give the server its instructions.# See URL:http://httpd.apache.org/docs-2.0/ for detailed information about# the directives.#Listen *:80 allowedIPs:listenPort

User apacheGroup apache

ServerAdmin [email protected] in caso di errore 501 (internal server error)

ServerName dee227.poliba.it

DocumentRoot "/var/www/html”

ErrorLog "/var/log/httpd/error_log” tracciamento degli errori (4xx e 5xx)CustomLog logs/access_log tracciamento degli accessi (statistiche)

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni26

Protocollo FTP

Protocollo FTP

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni27

Protocollo FTP

Il protocollo File Transfer Protocol (FTP) consente il trasferimento di file tra due host RFC 959

Utilizza 2 connessioni TCP:Connessione di controllo : utilizzata per trasferire informazioni di controllo tra client e serverConnessione dati : utilizzata per il trasferimento dei file

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni28

Protocollo FTP

La connessione di controllo è persistente ed identifica una sessione (necessaria autenticazione mediante login / logout)La connessione dati non è persistente , nell’ambito di una sessione, per ogni ambito file trasferito ècreata una nuova connessione dati (il server è in ascolto sulla porta 20 in attesa di nuove connessioni)

FTP FTP ClientClientFTP ServerFTP Server

TCP control connection TCP control connection ((portport 2121))

File System File System remotoremoto

TCP data connection (TCP data connection (portport 2020))

File System File System localelocale

Page 8: 11 Proxy Server - AJAX - protocollo FTP Proxy Server - AJAX - protoc… · 11. Proxy Server – AJAX – APACHE – Protocollo FTP Corso di Laurea in Ingegneria Informatica A.A. 2009-2010

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni29

Protocollo FTP

User Interface

User protocol interpreter

User data transfer function

Server protocol interpreter

Server data transfer function

Control Control connectionconnection

Data Data connectionconnection

ClientClient ServerServer

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni30

FTP : autenticazione

FTP richiede l’autenticazione dell’utente remoto il quale deve possedere un account sul servera discrezione del server esiste anche la possibilita’ di autenticare un utente anonimo (anonymous FTP)

User name: anonymousPassword:qualsiasi (generalmente mail address)Numero limitato di risorseDiritti limitati (generalmente è negato il permesso w)

FTP non è stateless, infatti le connessioni TCP devono essere associate all’account dell’utente loggato (vincolo sul massimo numero di utenti loggati)

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni31

Rappresentazione dei dati (1)

File Type:È possibile impostarlo in fase di configurazione della connessione

• ASCII ( default)• EBCDIC ( mainframe IBM)• Binary

Local file type: il numero di bit significativi per byte : èspecificato dal sender (se = 8 coincide con binary)

attualmente è difficile che si adoperi FTP per trasferire file testuali

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni32

Rappresentazione dei dati (2)

Structure:File Structure (default): il file è un flusso di byte contiguiRecord Structure : utilizzata solo con file di testo (ASCII o EBCDIC)Page Structure : ogni pagina è trasmessa in modo numerato (deprecato per PDP-11)

Page 9: 11 Proxy Server - AJAX - protocollo FTP Proxy Server - AJAX - protoc… · 11. Proxy Server – AJAX – APACHE – Protocollo FTP Corso di Laurea in Ingegneria Informatica A.A. 2009-2010

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni33

Rappresentazione dei dati (3)

Transmission mode:Stream mode (default): il file è trasferito come un flusso di byte contiguiBlock mode : il file è trasferito come flusso di blocchi, ognuno dei quali è preceduto da un headerCompressed mode : basato su Run-Length Encoding(RLE) di sequenze del medesimo byte

RLE is a simple compression algorithm. It consists of the process of searching for repeated runs of a single symbol in an input stream, and replacing them by a single instance of the symbol and a run count (p.e. “allegretti” “al2egret2i” basso rendimento per dati testuali ottimale per le immagini che hanno un alto livello di ridondanza)

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni34

Rappresentazione dei dati (4)

Le implementazioni più comuni di client e server FTP su piattaforme UNIX adottano le seguenti convenzioni:

File Type Type: ASCII o binaryStructure : fileTransmission mode: stream mode

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni35

Comandi FTP

Specifica lo usernameUSER username

Specifica il modo di trasferimento: A (ASCII) I(binario)

TYPE type

Ritorna il tipo di S.O. del serverSYST

Fa l’upload di un fileSTOR filename

Richiede un fileRETR filename

Disconnessione dal serverQUIT

Indirizzo IP del Client (n1.n2.n3.n4) e porta (256*n5+n6)

PORT n1,n2,…n6

Specifica la passwordPASS password

Lista files o directoryLIST filelist

Annulla il precedente comando ed ognitrasferimento dati

ABOR

DescrizioneComando

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni36

Repliche FTP

Filesystem statusx5z

Unspecifiedx4z

Autentication and accountingx3z

Connectionsx2z

Informationx1z

Syntax errorx0z

Permanent negative completion reply5yz

Transient negative completion reply (la richiesta non è stata accettata, l’errore è temporaneo, si può ritentare in seguito)

4yz

Positive intermediate reply (il comando è stato accettato ma un altrocomando deve essere inviato per continuare)

3yz

Positive completion reply (un nuovo comando può essere inviato)2yz

Positive preliminary reply (l’azione sta partendo ma è necessariaun’altra replica prima di un nuovo comando)

1yzDescrizioneReply

Page 10: 11 Proxy Server - AJAX - protocollo FTP Proxy Server - AJAX - protoc… · 11. Proxy Server – AJAX – APACHE – Protocollo FTP Corso di Laurea in Ingegneria Informatica A.A. 2009-2010

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni37

Repliche FTP - esempi

125 Data connection already open; transfer starting200 Command OK214 Help message331Username OK, password required425 Can’t open data connection [problemi derivanti dalla

connessione di rete]452 Error writing file Error [problemi derivanti dalla mancanza

di permessi adeguati]500 Syntax error (unrecognized command)501Syntax error (invalid arguments)502 Unimplemented MODE type

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni38

Gestione delle connessioni

La connessione dati è utilizzata per– Inviare un file da server a client– Inviare un file da client a server– Inviare un elenco di file o directory dal server al client

(comando list)

Una nuova connessione dati è creata per ogni file da trasferire

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni39

Gestione delle connessioni

La creazione della connessione dati è sotto il controllo del clientEsistono 2 modalità di gestione della connessione dati:- Attiva- Passiva

Modalità attiva:– Il client sceglie un numero di porta > 1024 su cui mettersi in

ascolto– Il client invia al server, tramite il comando PORT, il numero

di porta scelto– Il server avvia una connessione dati attiva sulla porta

ricevuta (dal lato server il numero di porta è 20)

controllo

dati

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni40

Gestione delle connessioni

Modalità passiva:– È il server a mettersi in ascolto per una connessione– Si usa il comando PASV per effettuare la commutazione.– E’ utile nel caso in cui il client si trovi dietro un firewall o un

NAT e quindi non può accettare connessioni in ingresso– In questa modalità il server si mette in ascolto su una data

porta ed aspetta una connessione dal client– La risposta a questo comando comprende il numero di porta su

cui è in ascolto il server

Page 11: 11 Proxy Server - AJAX - protocollo FTP Proxy Server - AJAX - protoc… · 11. Proxy Server – AJAX – APACHE – Protocollo FTP Corso di Laurea in Ingegneria Informatica A.A. 2009-2010

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni41

Esempio di sessione FTP

220 (vsFTPd 2.0.1)AUTH KERBEROS_V4530 Please login with USER and PASS.USER stefano331 Please specify the password.PASS pippo finita fase di autenticazione230 Login successful. avvia sessioneSYST215 UNIX Type: L8 L8 = LinuxPASV227 Entering Passive Mode (127,0,0,1,157,77) si entra in modalità passivaLIST150 Here comes the directory listing. lista dei file226 Directory send OK.TYPE I200 Switching to Binary mode. modalità binariaRETR prova.txt richiesta download prova.txt150 Opening BINARY mode data connection for prova.txt (0 bytes).226 File send OK.QUIT fine sessione221 Goodbye.

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni42

Esempio di sessione FTP

No. Time Source Destination Protocol Info 1 0.000000 193.204.59.21 193.204.59.227 TCP 32786 > ftp(21) [SYN] Seq=0 Ack=0

2 0.000083 193.204.59.227 193.204.59.21 TCP ftp(21) > 32786 [SYN, ACK] Seq=0 Ack=1

3 0.000135 193.204.59.21 193.204.59.227 TCP 32786 > ftp [ACK] Seq=1 Ack=1

4 0.016440 193.204.59.227 193.204.59.21 FTP ftp > 32786 Response: 220 (vsFTPd 2.0.1)..........................

21 9.862311 193.204.59.21 193.204.59.227 FTP 32786 > ftp Request: PASV

22 9.862756 193.204.59.227 193.204.59.21 FTP ftp > 32786 Response: 227 Entering Passive Mode (127,0,0,1,157,77) Passive port: 40269 (157*256+77)

24 9.876359 193.204.59.21 193.204.59.227 TCP 32787 > 40269 [SYN]

25 9.876406 193.204.59.227 193.204.59.21 TCP 40269 > 32787 [SYN, ACK]

26 9.876430 193.204.59.21 193.204.59.227 TCP 32787 > 40269 [ACK]

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni43

Esempio di sessione FTP

No. Time Source Destination Protocol Info 27 9.876767 193.204.59.21 193.204.59.227 FTP 32786 > ftp(21) Request: LIST

28 9.884313 193.204.59.227 193.204.59.21 FTP ftp > 32786 Response: 150 Here comes the directory listing.

29 9.889893 193.204.59.227 193.204.59.21 FTP-DATA 40269 > 32787 FTP Data: drwx------ 3 500 500 4096 Apr 14 15:47 Desktop\r\n-rwxr--r-- 1 500 500 958906 Apr 13 11:03 apt-0.5.15cnc6-1.1.fc3.fr.i386.rpm\r\ndrwxr-xr-x 2 500 500 4096 Apr 14 16:06 bin\r\n-rw-r

31 9.890257 193.204.59.227 193.204.59.21 FTP ftp > 32786 Response: 226 Directory sendOK.

..............

..............

67 88.612774 193.204.59.21 193.204.59.227 FTP 32786 > ftp Request: QUIT

68 88.613092 193.204.59.227 193.204.59.21 FTP ftp > 32786 Response: 221 Goodbye.

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni44

Client FTP

Su tutti i sistemi Windows ed Unix , esiste un client ftp testuale, richiamabile digitando:

ftp <nome_host>

Digitando il comando help si può ottenere la lista dei comandi

Esistono molti altri client grafici quali: WS_FTP , FileZilla , GFTP, ...

Anche molti browser web possono essere usati come client FTP

Page 12: 11 Proxy Server - AJAX - protocollo FTP Proxy Server - AJAX - protoc… · 11. Proxy Server – AJAX – APACHE – Protocollo FTP Corso di Laurea in Ingegneria Informatica A.A. 2009-2010

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni45

Client FTP - FileZilla

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni46

Server FTP

Un esempio di server FTP open-source disponibile per Linux è vsFTPd(Very Secure FTP daemon)

Dopo l’installazione del server, verrà creato un utente ftp, con una propria home directory

A questo punto il server è già in grado di funzionare. Se si prova un login anonimo, verrà mostrato il contenuto della home directory dell’utente ftp

In Windows c’è FileZilla versione server

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni47

Configurazione di vsFTPD

Si agisce sul file testuale vsftpd.conf, contenuto nella directory /etc

Principali direttive:– max_clients: massimo numero di client che si possono connettere– max_per_ip: massimo numero di connessioni da uno stesso indirizzo

IP per evitare il “bombing”– anonymous_enable: abilita l’accesso agli utenti anonimi– local_enable: abilita l’accesso agli utenti locali– anon_upload_enable: consente agli utenti anonimi di fare l’upload di

file

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni48

Riepilogo della lezione

Protocollo Proxy Server/AJAX/Apache/FTP

Proxy serverAJAXApacheProtocollo FTP

Page 13: 11 Proxy Server - AJAX - protocollo FTP Proxy Server - AJAX - protoc… · 11. Proxy Server – AJAX – APACHE – Protocollo FTP Corso di Laurea in Ingegneria Informatica A.A. 2009-2010

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni49

Fine della lezione

Domande?

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni50

Indicazioni per l’esercizio n.11b – Analisi response HTTP

Realizzare un’applicazione che analizza i pacchetti HTTP Responsedi un web-browser

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni51

serverjava.

sun.com

internetclientresponse

JAVA

server Socket

socketsocket

Indicazioni per l’esercizio n.11b – Analisi response HTTP

richiesta diconnessione

connessionestabilita

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni52

Indicazioni per l’esercizio n.11b – Analisi response HTTP

Socket clientSocket = new Socket("java.sun.com", 80);......link.println("GET / HTTP/1.1\n\n");

Create un client socket verso un server web attivo (p.e. java.sun.com)Inviare la richiesta minima (GET / HTTP/1.1)Leggere i dati inviati dal server riga per riga

Page 14: 11 Proxy Server - AJAX - protocollo FTP Proxy Server - AJAX - protoc… · 11. Proxy Server – AJAX – APACHE – Protocollo FTP Corso di Laurea in Ingegneria Informatica A.A. 2009-2010

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni53

Indicazioni per l’esercizio n.11a – Analisi request HTTP

Realizzare un’ applicazione che analizza i pacchetti HTTP Requestdi un browser (Internet Explorer e Mozilla)

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni54

serverrequestJAVA

internetbrowser

IEMozilla

server Socket

socketsocket

Indicazioni per l’esercizio n.11a – Analisi request HTTP

richiesta diconnessione

connessionestabilita

p.e. sulla stessa macchina digitando localhost

Telematica II – A.A. 2009-2010 a cura di Pascoschi Giovanni55

Indicazioni per l’esercizio n.11a – Analisi request HTTP

ServerSocket serverSocket = new ServerSocket(80);......while ((read = buffer.readLine()) != null)

Creare un serversocket (sulla porta 80)

Leggere i dati inviati dal client riga per riga