MokaByte
Numero 29 - Aprile 1999
|
||||
|
|
|||
|
|
|
||
L’HyperText
Transfer Protocol ( HTTP ) e’ attualmente usato dal World-Wide Web per
lo scambio di informazioni.Attualmente il protocollo e’ giunto alla versione
1.1 [ per maggiori informazioni vedi 1]. In questo articolo vedremo come
funziona e come e’ possibile spiare le connessioni HTTP del vostro browser
preferito senza ricorrere ad analizzatori di protocollo o ad altri sofisticati
sistemi di trace
|
||||||||||||||
IntroduzioneQuante volte vi siete chiesti cosa si scambia il browser con il server quando navighiamo e otteniamo delle pagine HTML ?Spesso la nostra curiosità e’ stata frenata dalla dimensione dell’ RFC che descrive il protocollo HTTP , leggere circa 200 pagine è un pò scoraggiante soprattutto se è pura curiosità. In questo articolo presenterò una piccola utility che permette di spiare in modo del tutto invisibile al browser la nostra connessione. Questa utility e’ stata pensata e scritta come supporto per lo sviluppo di una piccola applicazione HTTP. Questo genere di utility si rivelano molto interessanti sia perché permettono di spiare gli header HTTP inviati dal browser, sia per verificare effettivamente la validità delle informazioni trasmesse al server. Prima di iniziare a descrivere il codice e le varie classi che compongono il programma vediamo come funziona una richiesta eseguita tramite il protocollo HTTP. Possiamo dividere le richieste HTTP in due diversi tipi. I sorgenti descritti in questo articoli si possono trovare qui Connessione diretta al server webIn questo tipo di connessione il client esegue direttamente la connessione verso il server web. Questa connessione può essere schematizzata nei seguenti passi :
Il client si connette al server web server aprendo una connessione. Il client inoltra la sua richiesta al server. Il server elabora la risposta ed invia i dati al client. Connessione trmite proxy serverIn questo tipo di connessione il client esegue la connessione, invece che verso il server richiesto, verso il proxy server il quale a sua volta elabora l’header inviatogli dal browser. Anche qui lo schema della richiesta e’ molto simile al precedente.
Il client si connette al proxy server aprendo una connessione. Il client inoltra la sua richiesta al proxy. Il proxy elabora l’header inviatogli dal client. Il proxy verifica che la pagina richiesta non sia presente nella sua cache, se presente non esegue il punto 6. Il proxy richiede la pagina / immagine al server web. Il proxy invia i dati ricevuti al client. Il proxy archivia la pagina / immagine appena scaricata nella sua cache.
La velocità della linea utilizzata dal proxy. In genere le connessioni eseguite via modem non superano i 4Kb al secondo nella migliore delle ipotesi. Al contrario la connessione eseguita dal proxy ( che in genere e’ ospitato sulla macchina del vostro provider ) esegue una connessione al massimo della potenza della sua banda passante che puo’ variare da 32kbit ad un massimo di 2Mbit. Di seguito possiamo vedere la stessa richiesta eseguita con due browser. Richiesta eseguita da Netscape
Proxy-Connection: Keep-Alive User-Agent: Mozilla/4.06 [en] (Win95; I) Host: 127.0.0.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */* Accept-Language: it UA-pixels: 800x600 UA-color: color16 UA-OS: Windows 95 UA-CPU: x86 User-Agent: Mozilla/2.0 (compatible; MSIE 3.02; Windows 95) Host: 127.0.0.1 Proxy-Connection: Keep-Alive
Server: Microsoft-IIS/3.0 Date: Fri, 11 Sep 1998 11:28:10 GMT Content-Type: text/html Set-Cookie: ASPSESSIONID=OUUSJJSWMYSVWFDY; path=/ Cache-Control: private Age: 0 X-Cache: MISS from 127.0.0.1 Proxy-Connection: close Il programma
/**
Come utilizzare il programmaPer utilizzare il programma e’ necessario eseguire i seguenti passi :Impostare il proxy del browser prescelto per eseguire la prova nel seguente modo.Note: il programma è stato testato in ambiente Windows 95 e Windows NT 4.0 sp. 3 e JDK 1.1.5 |
|
||
|
||
MokaByte ricerca
nuovi collaboratori
|
||
|