Head First - Servlets and JSP

Un buon libro introduttorio su questa parte di Java EE é Head First - Servlets and JSP edito dalla O'Reilly.

Lo leggo e scrivo qui qualche nota, a partire dal capitolo 1: perché usare servlets e JSP?

Il processo: un browser web permette all'utente di richiedere una risorsa (pagina html, immagine, suono, un documento pdf, ...); il server web riceve la richiesta, trova la risorsa e ritorna qualcosa all'utente.

Se non la trova l'utente ottiene l'errore 404 Not Found.

Il meccanismo richiesta (request) risposta (response) é gestito via HTTP per mezzo di metodi, i più comuni tra i quali sono GET e POST.
  • GET: semplice richiesta al server per una risorsa.
  • POST: é una richiesta a cui sono associati dei parametri.
In realtà é possibile mandare dati al server anche via GET ma non é solitamente una buona idea, dato che:
  • il numero di caratteri che si possono mandare é basso, e dipendente dal server;
  • i dati mandati via GET sono appesi all'URL, sono quindi visibili all'utente;
D'altro canto, se si vuole ripetere spesso una richiesta parametrizzata, per una GET si può creare un bookmark, mentre con la POST occorre rieseguire la pagina in cui sono settati i parametri.

Per una GET la richiesta é strutturata in questo modo:

Request line:
GET [path]?[param1]&[param2]& ... [paramN] HTTP/1.1

Request headers:
Host: ...

Per una POST, invece, le cose funzionano così:

Request line:
POST [path] HTTP/1.1

Request headers:
Host: ...
...
Accept: text/html, ...
...

Message body (o "payload"):
[param1]&[param2]& ... [paramN]

La risposta HTTP é strutturata così:

Response Headers:
HTTP/1.1 200 OK
Set-Cookie: ...
Content-Type: text/html
...

Response body:
<html>
...
</html>

Il Content-Type indica il tipo (MIME) che identifica la risorsa reperita. Vedi anche il campo Accept della request.

La richiesta di pagine web statiche é gestita direttamente dall'applicazione web server. Nel caso di richiesta di pagine dinamiche, si appoggia ad un altra applicazione sul server.

Le applicazioni classiche che si occupano della generazione di pagine dinamiche sono programmi CGI (Common Gateway Interface) scritti tipicamente in Perl, C, Python e PHP. Per Java si parla di servlet e JSP.

Nessun commento:

Posta un commento