sabato 11 giugno 2011

Un tester Http

Wow, sono passati veramente troppi cicli di clock dal mio ultimo (e primo :P ) post! Rieccomi con qualche news! Direttamente dal mondo dell'università di Pavma, più precisamente dal corso di Telematica A tenuto dal professore Alessandro Lazzari, ecco un semplice tester Http. Il tutto è un progetto sviluppato da me per il suddetto corso e ho deciso di caricarlo sul blog per quegli studenti che chissà come, durante la loro navigazione web, si sono spiaggiati su queste pagine! Il link a fine post!!!


Prima di descrivervi brevemente le funzionalità del tester, mi sa che conviene fare un piccolo accenno ai protocolli di rete, come l'HTTP, e al loro funzionamento!

Che cos'è un protocollo di rete?
Detto in parole povere, un protocollo di rete non è altro che un insieme di regole e convenzioni che permettono, a due o più dispositivi collegati ad una stessa rete, di dialogare.
Ci avete capito qualcosa? No? Allora continuate a leggere! :)
 Il concetto di per sé è piuttosto semplice. Basti pensare alla vita di tutti i giorni! Se anche noi, parlando con le altre persone non usassimo un certo protocollo come la lingua italiana, non riusciremmo a capirci! Infatti se per esempio andiamo dal fruttivendolo con l'intenzione di comprare un chilo di pere, sappiamo bene di dover formulare la richiesta circa così: "Salve, potrei avere un chilo di pere? Grazie!" Se invece non conoscessimo bene la lingua italiana (il protocollo) e le sue regole/convenzioni nulla ci vieterebbe di formulare una richiesta del genere: "Pere Salve, avere potrei chilo un?" e molto probabilmente il povero fruttivendolo non ci capirebbe un fico secco!
Il concetto di capirsi è quindi ciò che sta alla base di un protocollo di comunicazione, così come sta alla base di quelli di rete. Per tornare a termini un pochino più informatici delle pere, prendiamo per esempio il caso in cui si vuole visualizzare una certa pagina web.
I passi che si fanno di solito sono:

  1. Aprire il browser
  2. Scrivere l'indirizzo web della pagina che vogliamo visualizzare nella barra degli indirizzi
  3. Dare conferma
  4. La pagina viene scaricata e visualizzata
Il punto 3 è esattamente dove uno dei più usati protocolli di rete, l'HTTP, entra in gioco. 
L'HTTP è appunto quell'insieme di regole e convenzioni che un browser deve conoscere se vuole essere in grado di scaricare un intera pagina web. Ci sono tanti altri protocollo di rete, come per esempio:
  • SMTP (Simple Mail Transfer Protocol): serve ad inviare email
  • POP3 (Post Office Protocol): serve a scaricare le email
  • FTP (File Transfer Protocol): serve a trasferire file da un computer all'altro ad esempio
e molti altri...
Quello che per ovvie ragioni analizzerò più in dettaglio è l'HTTP

Che cos'è l'HTTP?
Come ho detto prima, l'HTTP (Hypertext Transfer Protocol) è un protocollo di rete. Più specificamente questo protocollo si occupa di fornire i mezzi per il trasferimento di ipertesti e informazioni attraverso il web. Se un client, per esempio un browser, vuole dialogare con un server web DEVE conoscere l'HTTP! Ma come fanno client e server a dialogare? Attraverso dei messaggi di richiesta da parte del primo e di risposta del secondo. Questi messaggi devono essere costruiti in un certo modo, con determinate informazioni che non sto ad elencare altrimenti scrivo un libro più che un post :P
 Se volete approfondire senza andare troppo nei dettagli c'è la sempre ottima wikipedia oppure se volete sapere tutto ma proprio tutto sull'http c'è il sito del w3 :)

Il Tester Http
Dopo questa mini introduzione ai protocolli di rete e all'http eccoci arrivati al piccolo progetto che ho sviluppato! In definitiva questo programma, scritto in Java, permette di costruire messaggi di richiesta da inviare poi ad un server http per poterne esaminare la risposta! Il funzionamento è molto semplice ed intuitivo (se si conosce l'http un pochino più in dettaglio ovviamente ;) ).
 L'interfaccia grafica si presenta così
Se si prova a formulare e inviare una richiesta http come per esempio quella contenuta nella prossima immagine

Si ottiene una risposta dal server che viene visualizzata nel seguente modo



Tutto qui! Metto qui di seguito il pacchetto contenente codice e .jar eseguibile per chi fosse interessato!
  Pacchetto Tester Http

Alla prossima!

Continua a leggere...