Il 0% ha trovato utile questo documento (0 voti)
5 visualizzazioni33 pagine

Uda1 - Lez03 HTTP Modificato

Caricato da

russoroberto289
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PPTX, PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
5 visualizzazioni33 pagine

Uda1 - Lez03 HTTP Modificato

Caricato da

russoroberto289
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PPTX, PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 33

Unità di apprendimento 1

Lezione 3

La comunicazione nel Web


con
protocollo http
HTTP e il modello client/server
 HTTP è un protocollo testuale di livello applicativo,
usato per trasmettere risorse e basato sul modello
di comunicazione client server.
 Il tipo più comune di risorsa è un file html, ma può

anche essere un’immagine, un documento pdf, o


altro ancora.
 Possiamo dire che il Web (WWW) è nato

dall’insieme di diverse tecnologie, le principali


sono HTML, URL e HTTP
 Una risorsa è identificata da un URI o URL.
URI, URN e URL (Uniform Resource
Identifier, Name e Location)

Differenza tra URI, URN e URL:


• URI: identifica una risorsa
• URN: identifica una risorsa in base al nome
• URL: identifica una risorsa in base al
percorso da utilizzare per accedervi

Un'analogia:
• URI: il nome di una persona
• URN: il codice fiscale di una persona
• URL: l'indirizzo di casa di una persona
HTTP e il modello client/server

Vediamo un esempio di indirizzo URl:


Connessioni multiple e connessione
permanente
 Connessioni multiple: apro una
connessione per ogni request/response

 Connessione permanente: apro una


connessione, invio più request/response
e quando ho finito chiudo la
connessione.
Connessioni multiple e connessione
permanente
HTTP e il modello client/server
 Sono state definite varie versioni del protocollo HTTP tra cui:
• HTTP/1.0 (anno 1996)
• HTTP/1.1 (anno 1999)
• HTTP/2 (anno 2015)
 La versione 1.1 permette di specificare una connessione
permanente
 Nella connessione permanente il server lascia aperta la
connessione TCP dopo aver spedito la risposta e rimane in
ascolto di altre richieste.
Non incanalata (no pipelining) vs
incanalata (pipelining)
Tipi di connessioni
 Esistono due tipi di connessione permanente:
• connessione permanente incanalata
• connessione permanente non incanalata
 Nella versione non incanalata (no pipeline) il client
passa a una nuova richiesta solo quando la
risposta alla precedente è stata ricevuta.
 Nella versione incanalata (pipeline) le richieste

vengono via via aggiunte a una coda chiamata


pipeline, mentre le risposte vengono processate e
inviate nello stesso ordine delle richieste .
Il protocollo HTTP
 Conversazione client-server
• Ogni conversazione tra client e
server sul Web inizia con una
richiesta (request) rappresentata
da un messaggio di testo creato
dal client in formato HTTP.
• Il client invia la richiesta al server,
quindi attende la risposta
(response).
• Il protocollo HTTP utilizza messaggi in
formato ASCII.
I messaggi HTTP
 Durante una comunicazione HTTP client e server si
scambiano messaggi di richiesta e di risposta,
entrambi formati da:
• una riga iniziale;
• un’intestazione (header), anche assente;
• una riga vuota;
• un corpo del messaggio (body), anche assente;
Messaggio di richiesta: Request HTTP
 Una request http è un messaggio testuale
inviato dal client al server ed è formato da tre
elementi:
• riga di richiesta
• Intestazione HTTP (header)
• corpo del messaggio(message body)
Messaggio di richiesta: Request HTTP
 Riga di richiesta
 La riga di richiesta contiene:
• il metodo (Method) che può essere:
• GET, POST, DELETE, …
• l’URI (o URL) è l’identificativo di risorsa richiesta al
server;
• la versione (Version) può assumere i valori
HTTP/1.0 o HTTP/1.1.
Messaggio di richiesta: Request HTTP
 Un esempio di riga di richiesta HTTP è:

 In questo caso possiamo notare:


• che il metodo richiesto è GET
• che l’URI è rappresentato da /percorso/file.html
• che si tratta di un file in formato html presente nella
sottodirectory della radice del server chiamata /percorso
Metodi HTTP
 Nella conversazione HTTP, la prima riga di
intestazione di una request contiene un
elemento chiamato metodo o verbo HTTP

 Ilmetodo GET è quello più utilizzato infatti serve


per richiedere una risorsa al server
 Nella tabella seguente vediamo un elenco

completo dei metodi http disponibili


Header HTTP
Messaggio di richiesta: Request
HTTP (header)
 nelle righe successive vengono indicate gli
header (intestazioni), rappresentate da diversi
elementi, ciascuno dei quali composto da un
nome, seguito dai due punti (:) e da un valore
 ogni riga rappresenta un distinto header
Intestazione HTTP (header)
 L’intestazione HTTP (header) contiene varie informazioni
 È formata da diverse righe, ciascuna delle quali rispetta il
formato

 Alcuni esempi di header:


• Transfer-Encoding: indica la compressione dei dati trasmessi e si
riferisce a tutto il messaggio
• Content-Type: indica il MIME e specifica se si tratta di un testo,
un’immagine PNG, un suono WAV, un MPG ecc.;
• User-Agent: indica la versione e il tipo di browser oltre alla versione e
al sistema operativo del client;
Corpo del messaggio (Message body)
 Il corpo del messaggio (message body) di richiesta
contiene i dati trasportati. In questo caso si
trattandosi di una GET non invia nulla nel corpo del
messaggio.
Messaggio di risposta: Response HTTP
 La response (risposta) HTTP è organizzata in
maniera analoga rispetto a una richiesta.
 L’unica differenza è che le risposte iniziano con

una riga di stato al posto della riga di richiesta.


 La response è formata da:

• una riga iniziale con versione protocollo HTTP e stato;


• un’intestazione(header) facoltativa;
• un corpo(body) facoltativo.
Messaggio di risposta: Response HTTP
Body della risposta
I codici di stato – esempi
I codici di stato
 I codici di stato, o status code, sono dei codici
restituiti dai server HTTP per indicare al client l’esito
di una richiesta.
 Sono stati definiti dall’IETF e sono circa 50 e sono

stati suddivisi per categoria:


• 1 codici da 100-199 (Information)
• 2 codici da 200-299 (Successful)
• 3 codici da 300-399 (Redirection)
• 4 codici da 400-499 (Client error)
• 5 codici da 500-599 (Server error)
Come vedere il funzionamento di
http con chrome e curl
 Di
seguito vediamo come analizzare il
contenuto http mediante due programmi
• Google chrome
• curl
Come vedere il funzionamento di
HTTP
 Seusate Chrome e i suoi strumenti, è
disponibile Chrome Developer Tools che nella
sua versione completa permette:
• la navigazione all’interno del DOM delle pagine Web;
• l’analisi e la modifica dell’HTML e dei fogli di stile in
tempo reale;
• il monitoraggio, il debug e le modifiche del codice
JavaScript in tempo reale.
Come vedere il funzionamento di
HTTP
I codici di stato
cURL
 Un altro utile metodo per prendere confidenza
con l’HTTP è di usare un client dedicato
 Noi utilizzeremo cURL
I codici di stato
 cURL è un software gratuito e open source definito dai sui stessi
autori come “command line tool and library for transferring data
with URLs”.
 cURL viene utilizzato nelle righe di comando o negli script per
trasferire i dati in tutti i tipi di dispositivi, dal PC al tablet, dai
televisori alle stampanti, dai router alle apparecchiature Audio
EDD.
 cURL viene utilizzato per effettuare i test dei siti Web, sia semplici
come quelli composti da poche pagine che noi realizzeremo, sia
estremamente complessi come Facebook o YouTube.
 cURL è un software da riga di comando per Shell/DOS che, oltre a
HTTP, interagisce con svariati protocolli, come FTP e TELNET.
I codici di stato
 Con cURLè possibile effettuare molte operazioni:
• recuperare una pagina Web e il suo contenuto
• inviare in modo fittizio i dati di un form
• autenticarci in modo fittizio in un’area riservata
• connetterci in modo generico a un Web service

Potrebbero piacerti anche