Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
richiesta pagina
pagina
client
server
Prof. Carlo Blundo
Le Pagine Web
Consistono di istruzioni (marcatori) HTML
Memorizzate su computer detti server web
Visualizzare da computer detti client usando
un browser
Google Chrome
Firefox
Safari
Opera
Internet Explorer
Il browser 1
Il browser legge un documento scritto
in linguaggio HTML (+ CSS +
Javascript) interpretandone i comandi e
visualizzandolo
Il browser 2
Il server Web risponde alla richiesta,
utilizzando il protocollo HTTP ed invia il
documento richiesto
I l b r o w s e r l e g g e e i n t e r p r e t a
linformazione scritta in HTML (+CSS +
Javascript) e la presenta (quasi sempre)
nel formato corretto
HTTP
Protocollo
Caratteristiche di HTTP
HTTP
0.9
1.0 (RFC 1945)
1.1 (RFC 2616)
La
Connessione HTTP
HTTP 0.9
HTTP 1.0
S
open
close
open
close
open
close
open
close
open
close
close
(GET, POST,
HEAD, PUT)
C
durata connessione
open
(solo GET)
con pipelining
open
S C
open
close
close
10
HTTP stateless
Il server non mantiene alcuna informazione
sulle richieste precedenti del client
I protocolli che conservano lo stato sono
molto complessi
Insiemi di valori condivisi
La storia passata (stato) deve essere mantenuta
11
Messaggi HTTP
Il protocollo definisce il formato dei messaggi
request e response hanno lo stesso formato e
seguono la struttura (RFC 822) di un
messaggio di email (sono testuali non binari)
start-line
pu essere o una request-line o una status-line
<Linea Vuota>
BODY (pu mancare)
Prof. Carlo Blundo
12
Message Body
13
Esempio di request
request line
(GET, POST,
HEAD, PUT)
GET /TSW/esami.html HTTP/1.0
User-agent: Mozilla/4.0
header
Accept: text/html, image/gif,image/jpeg
lines
Accept-language:it
(ulteriore carriage return, line feed)
carriage return + line feed indicano la fine
dellintestazione, pu iniziare il corpo (body)
del messaggio parte opzionale
Prof. Carlo Blundo
14
Analizzeremo solo:
15
Il metodo GET
16
HEAD
17
GET ed HEAD
GET
Gli
18
Il metodo POST
POST,
19
GET e POST
Anche GET pu essere utilizzato per inviare
dati al server
La risorsa richista con GET un programma
che estrae i dati dal messaggio di request e li
utilizza in qualche modo
20
Esempio
21
Referer: http://caprera.dia.unisa.it/LASD/prenota.html
Content-Type: multipart/form-data; boundary= ---------------------------41184676334
Content-Length: 438
-----------------------------41184676334
Content-Disposition: form-data; name="nome"
carlo
-----------------------------41184676334
Content-Disposition: form-data; name="cognome"
blundo
-----------------------------41184676334
Content-Disposition: form-data; name="matricola"
53/7777
-----------------------------41184676334
22
Referer: http://caprera.dia.unisa.it/LASD/prenota.html
23
24
lf
body
25
Esempio di response
HTTP/1.1 200 OK
Date: Wed, 12 Feb 2003 12:43:01 GMT
Server: Apache/1.3.22 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 16 Oct 2002 09:47:40 GMT
ETag: "dbca-2-3dad35bc"
Accept-Ranges: bytes
Content-Length: 43
Connection: close
Content-Type: text/html
<HTML> <BODY>
Ciao mondo!
</BODY></HTML>
Prof. Carlo Blundo
26
Status Code 1
Lo
2xx: Successful
Il server ha ricevuto, capito e accettato la
richiesta.
Prof. Carlo Blundo
27
Status Code 2
3xx: Redirection
Il server ha ricevuto e capito la richiesta, ma sono
necessarie altre azioni da parte del client per portare
a termine la richiesta.
28
29
I cookie 1
HTTP stateless
Il server non mantiene alcuna informazione sulle
precedenti richieste del client
30
I cookie 2
I
31
client
request
applicazione
CGI/PHP/JSP/
request
genera il cookie
Cookie
ta + Set
Rispos
request + Coo
kie
cookie
Output +
request + Co
okie
analizza il cookie
ta
Rispos
Output
32