ePrometeusCorsoJavaJava
testi articoli
Testi Articoli  Download
Home | Eshop | Java | Tools | Web | 
CorsoJava è ora Video! Free for all!
Clicca Qui!

SERVLET
Server side programming con Java Servlet
Le Servlet
Supporto per le servlet
Panoramica
Programmare con l'HTTP
Le Servlet HTTP
Richieste e risposte
Un esempio
Conclusioni
Bibliografia
L'Autore

<<< Programmare con l'HTTP >>>

Esaminiamo ora in dettaglio la struttura delle richieste che un browser invia al server tramite protocollo HTTP. Tipicamente si tratta di input proveniente da form o da link ipertestuali, e sono codificate con delle URL. Nel caso più generale una URL http ha il seguente formato:

http://sito:porta/path/file.ext/extrapath?data

Il browser utilizza innanzitutto il nome del sito e il numero della porta per trovare il server su Internet, e poi comincia un colloquio utilizzando il protocollo specificato come prefisso. Nel caso che stiamo considerando, assumiamo che il prefisso sia http. In generale l'URL può usare altri prefissi: ftp, gopher, ldap eccetera (e cambia sia il formato dell'URL che il protocollo da usare). Una volta connesso col web server il browser solitamente invia la richiesta utilizzando il comando HTTP GET. Questa richiesta viene generata quando l'utente segue un link. Sono possibili tuttavia altre richieste. Innanzitutto HEAD, usata spesso dai motori di ricerca per estrarre l'intestazione e non tutto il documento. Quando l'utente invia una form, i dati vengono spesso trasferiti utilizzato il comando POST. Infine, quando l'utente pubblica le sue pagine con un editor che supporta il publishish, generalmente invia i dati al web server utilizzando il comando PUT; questo comando non è supportato da tutti i Web Server, anzi occorre ricorrere a speciali estensioni. Ci sono altri comandi ancora di uso meno frequente.

In base al path, il server stabilisce come deve essere servita una richiesta, consultando la sua configurazione. Ad ogni path viene associata una diversa modalità di gestione. Nel caso più semplice si tratta della modalità di lettura: il server semplicemente invia il file richiesto così com'è. L'altra modalità importante è quella di esecuzione, in cui il server gestisce la richiesta mandando in esecuzione il file specificato e ritornando al client l'output prodotto. In realtà sono possibili diverse modalità di esecuzione. La modalità più generale è quella in cui si manda in esecuzione un generico programma o una DLL. Nei casi più specifici delle servlet o del Perl embedded, il path contraddistingue l'interprete Java o Perl incorporato nel web server, ed è generalmente /servlet per le servlet e /perl per il Perl. Quello che segue il path dipende dalla particolare implementazione. Nel caso della servlet col JRun deve seguire il nome di una classe posto in una ben precisa directory specificata dalla configurazione del JRun. I server spesso in base all'estensione fanno altre distinzioni. Per esempio, nel caso della lettura il server utilizza l'estensione per determinare il tipo MIME del documento da ritornare al browser. Nel caso dell'esecuzione, il server può utilizzare l'estensione per stabilire con quale interprete deve mandare in esecuzione il file.

Quando si manda in esecuzione un programma, il browser invia al server dei parametri, che vengono poi passati al programma. Nel caso di richieste GET i parametri vengono accodati all'URL della richiesta (separato da un "?"), mentre nel caso di richieste POST, i parametri vengono passati al programma utilizzando la standard input. Le richieste possono anche contenere un extra path, come si vede dalla forma generale dell'URL, che viene passato anche esso come parametro.

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com