Protocollo HTTP: caratteristiche e modalità di connessione persistente e non

Slide dall'Istituto Tecnico Indirizzo Tecnologico Settore Informatica e Telecomunicazioni Articolazione Informatica sul Protocollo HTTP. Il Pdf esplora le caratteristiche e le modalità di connessione, persistente e non persistente, del protocollo HTTP, utile per studenti di scuola superiore che studiano Informatica.

See more

31 Pages

Protocollo HTTP
Sistemi e reti 5
a
Prof. Marcolin Mattia
Istituto Tecnico Indirizzo Tecnologico
Settore Informatica e Telecomunicazioni
Articolazione Informatica
Indice
Introduzione al protocollo HTTP
Caratteristiche del protocollo HTTP
Formato messaggi di richiesta
Formato messaggi di risposa

Unlock the full PDF for free

Sign up to get full access to the document and start transforming it with AI.

Preview

Indice

Introduzione al protocollo HTTP
Caratteristiche del protocollo HTTP
Formato messaggi di richiesta
Formato messaggi di risposa

Introduzione al protocollo HTTP

Protocollo HTTP (Hyper Text Transfer Protocol)

Il protocollo di livello applicativo HTTP regola il servizio di web
browsing che gli utenti usufruiscono quando navigano su Internet,
ossia visitano le pagine dei siti web in cerca di informazioni

  • E' un protocollo di tipo client-server, standardizzato dai documenti RFC(Request
    for Comments) 1945, 2616 al cui interno:
  • è definito il formato dei messaggi di richiesta inviati dal client al server
  • è definito il formato dei messaggi di risposta inviati dal server al client
  • si specifica che a livello di trasporto si utilizza il protocollo TCP per instaurare una
    connessione affidabile fra il processo client e il processo server
    si specifica che il processo server ha numero di porta 80
  • Il processo client è un browser (Firefox, Safari, Chrome .. ) in esecuzione su un
    host

Sistemi e reti
Introduzione al protocollo HTTP
@Mattia Marcolin
4

Pagina web

E' un insieme di oggetti chiamati anche risorse

  • Un oggetto può essere un file html, una immagine, un file audio, un video
    . Ogni oggetto è identificato in modo univoco tramite una stringa chiama Uniform
    Resource Locator(URL)
  • Gli oggetti che compongono una pagina web possono essere memorizzati tutte
    all'interno di uno stesso server o distribuite su diversi server

Sistemi e reti
Introduzione al protocollo HTTP
@Mattia Marcolin
5

URL (Uniform Resource Locator)

Ogni URL contiene quattro informazioni:

  • protocol: protocollo di livello applicativo utilizzato tra client e server per lo
    scambio della risorsa
  • host: nome simbolico del server in cui la risorsa è memorizzata
  • port: numero di porta del processo server destinatario del messaggio di richiesta.
    Questo campo è deducibile dal protocollo di livello applicativo specificato in protocol
  • path: percorso in cui la risorsa è memorizzata all'interno del server
    protocol://host;port/path
    Separatori

Sistemi e reti
Introduzione al protocollo HTTP
@Mattia Marcolin
6

Esempio di URL

http://www.ansa.it:80/index.html

  • http: indica il protocollo applicativo che client e server utilizzano per lo scambio
    della risorsa
  • www.ansa.it: è il nome simbolico associato all'indirizzo IP del server presso cui
    è ospitata la pagina web index.html
  • 80: numero di porta del processo server HTTP in esecuzione nel server il cui
    nome simbolico è www.ansa.it
  • index.html: nome ed estensione della risorsa richiesta. In generale, in questa
    porzione dell'URL l'utente può inserire il percorso della risorsa desiderata
  • tale percorso non è assoluto, ma relativo alla directory scelta dall'amministratore di
    rete a lato dalla configurazione del server HTTP

Sistemi e reti
Introduzione al protocollo HTTP
@Mattia Marcolin
7

Esempio di pagina web

Pagina web
Risorsa 1
URL: http://www.ideePerNatale.it/index.html

index.html
<html>
<head>
...
</head>
<body>
...
Risorsa 2
http://www.ideePerNatale.it/img/colosseo.jpeg
<img src = "http://www.ideePerNatale.it/img/colosseo. jpeg">
...
Risorsa 3
http://www.ideePerNatale.it/img/ilCristoRe. jpeg
<img src = "http://www.ideePerNatale. it/img/ilCristoRe. jpeg">
k/body>
k/html>

Sistemi e reti
Introduzione al protocollo HTTP
@Mattia Marcolin
8

Caratteristiche del protocollo HTTP

Protocollo stateless

Il contenuto del messaggio di risposta generato dal processo server
P server alla ricezione di un messaggio di richiesta Mp, generato da un
processo client P
client, dipende esclusivamente dal contenuto di MR e
non da eventuali messaggi di richiesta precedente generati da Pc
client

  • Per questo motivo, tutte le informazioni necessarie al server HTTP per generare
    un messaggio di risposta devono essere incluse nel messaggio di richiesta
    ricevuto

Sistemi e reti
Caratteristiche del protocollo HTTP
@Mattia Marcolin
10

Caratteristiche protocollo HTTP

  • All'interno di un server possono esistere diverse versioni della medesima
    risorsa
  • a seconda del dispositivo(smartphone, tablet, PC .. ) che richiede una determinata
    risorsa, il server HTTP restituirà la versione ottimizzata per tale dispositivo
  • in realtà la risorsa può essere ottimizzata non solo sulla base del dispositivo, ma
    anche sulla base del processo client(Firefox, Safari, Chrome .. ) che ha inoltrato la
    richiesta

Sistemi e reti
Caratteristiche del protocollo HTTP
@Mattia Marcolin
11

La comunicazione HTTP

  • Il browser, per visualizzare la pagina web corrispondente all'URL specificato
    dall'utente, segue questi passi:
  • richiedere al processo DNS client in esecuzione sulla medesima macchina di fornirgli
    l'indirizzo IP corrispondente al nome simbolico digitato dall'utente nell'URL
  • invia al server un messaggio di richiesta per ottenere il file html il quale definisce la
    struttura della pagina e contiene al suo interno gli URL delle risorse in essa
    contenute
  • successivamente inoltra un messaggio di richiesta per ogni singola risorsa. Come
    vedremo, questa fase può avvenire utilizzando una modalità di connessione
    persistente o non persistente
  • Qualora la risorsa richiesta è presente nel server, questa sarà contenuta nel
    messaggio di risposta. In caso contrario, il messaggio di risposta conterrà un
    codice d'errore

Sistemi e reti
Caratteristiche del protocollo HTTP
@Mattia Marcolin
12

Modalità di connessione non persistente

Per scaricare ogni oggetto contenuto nel file html il
browser apre una distinta connessione TCP
Richestat(index.html)
Server
Risposta(index.html)
Host
Http server
Http client
Richiesta(img/colosseo.jpg)
Risposta(img/colosseo.jpg)
Richiesta(img/ilCristoRe.jpg)
Risposta(img/ilCristoRe.jpg)

Sistemi e reti
Caratteristiche del protocollo HTTP
@Mattia Marcolin
13

Pseudocodice Browser modalità non persistente

Dall'URL inserito dall'utente, contenente il nome del file html della pagina web richiesta,
ricava il il nome simbolico dell'interfaccia di rete del server in cui tale file è memorizzato

  • Comunica il nome simbolico al processo DNS client al fine di ottenere il corrispondente
    indirizzo IP
  • Apri connessione TCP sulla porta 80 all'indirizzo IP fornito dal processo DNS al passo
    precedente
  • Crea ed invia un messaggio di richiesta per ottenere il file html relativo alla pagina web
    richiesta
    Rimani in attesa di ricevere il messaggio di risposta contenente il file html
    Ricevuto il messaggio di risposta, chiudi la connessione TCP
  • Per ogni risorsa contenuta nella file index.html, apri una distinta connessione TCP
  • Visualizza la pagina web richiesta

Caratteristiche del protocollo HTTP
@Mattia Marcolin
14

Modalità di connessione persistente

La connessione TCP aperta dal client per ottenere dal server
il file html non viene chiusa al suo ottenimento ma viene
utilizzata anche per il trasferimento degli altri oggetti che
compongono la pagina web, memorizzati all'interno di tale server
Server
Richiesta(index.html)
Host
Http client
Risposta(index.html)
Richiesta(img/colosseo.jpg)
Http server
Risposta(img/colosseo.jpg)
Richiesta(img/ilCristoRe.jpg)
Risposta(img/ilCristoRe.jpg)

Sistemi e reti
Caratteristiche del protocollo HTTP
@Mattia Marcolin
15

Modalità di connessione persistente: versioni

  • In generale, è possibile utilizzare la modalità persistente solo per ottenere
    oggetti che si trovano all'interno del medesimo server
  • La modalità di connessione persistente prevede due versioni:
  • con pipelining: una volta che il client ha ottenuto il file html della pagina web, i
    messaggi HTTP request per ottenere gli oggetti in essa contenuti(ciascuno
    specificato da un opportuno URL) vengono inviate in serie. Ritornando all'esempio
    precedente, il client invia il messaggio HTTP request per ottenere l'immagine
    ilCristoRe.jpeg solamente dopo aver ricevuto il messaggio HTTP response
    contenente l'immagine colosseo.jpeg
  • senza pipelinig: una volta che il client ha ottenuto il file html, i messaggi HTTP
    request per ottenere le altre risorse vengono inviati in parallelo. Ritornando
    all'esempio precedente, il client può inviare il messaggio HTTP request per ottenere
    l'immagine ilCristoRe.jpeg anche se non ha ancora ricevuto il messaggio HTTP
    response contenente l'immagine colosseo.jpeg

Sistemi e reti
Caratteristiche del protocollo HTTP
@Mattia Marcolin
16

Formato messaggi di richiesta

Struttura dei messaggi di richiesta

Da un punto di vista logico, il messaggio di richiesta ha una
prima riga chiamata request line, a seguire un certo
numero di request header lines ed infine il body
Request line
method
sp
URL
sp
version
In
sp: spazio
header field name
..
value

  • Carriage return(\r)
    . Header
    lines
    . header field name
    ..
    value
    S
    Ir
    In
    Body
    Entity body
  • Line feed(In)

Sistemi e reti
Formato dei messaggi di richiesta
@Mattia Marcolin
18

Request line: campi

Questa è una riga obbligatoria e si compone
dei seguenti campi : method, URL e version

  • method: definisce il tipo di operazione che il client richiede al server. I valori
    assunti con più frequenza da questo campo sono get, post, put e head
  • URL: in realtà questo campo non contiene un URL ma solo il percorso della
    risorsa all'interno del server sulla quale il client vuole effettuare l'operazione
    specificata nel campo method
    version: contiene la versione del protocollo HTTP utilizzata

Sistemi e reti
Formato dei messaggi di richiesta
@Mattia Marcolin
19

Campo method

Definisce il tipo di operazione che il client richiede al server. I valori
più frequenti assunti da questo campo sono get, post, head e put

  • Quando il client desidera scaricare un oggetto dal server utilizza get o post. II
    percorso all'interno del server dell'oggetto che si desidera scaricare è contenuto
    nel campo URL della request line
  • La differenza sostanziale fra i due metodi sta nella modalità con cui, eventuali
    dati(ad esempio quelli inseriti dall'utente in un form), vengono trasmessi dal
    client al server.
  • get: i dati vengono inseriti nell'URL che compare nella barra delle ricerche del
    browser. In questo caso il body del messaggio di richiesto non contiene byte
  • post: i dati vengono inseriti all'interno del body del messaggio di richiesta

Sistemi e reti
Formato dei messaggi di richiesta
@Mattia Marcolin
20

Can’t find what you’re looking for?

Explore more topics in the Algor library or create your own materials with AI.