



Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Questa guida fornisce una panoramica completa del protocollo http (hypertext transfer protocol), fondamentale per la comunicazione tra client e server web. Esplora il modello richiesta-risposta, il funzionamento dettagliato, gli elementi principali degli url e le diverse versioni di http (1.1, 2.0, 3.0). Approfondisce i metodi get e post, la struttura delle richieste e delle risposte http, inclusi i codici di stato. Inoltre, analizza altri metodi come head, put e delete, offrendo una comprensione esaustiva del protocollo e delle sue applicazioni nel web.
Tipologia: Appunti
1 / 5
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




HTTP (Hypertext Transfer Protocol) è un protocollo di livello applicativo che consente la comunicazione tra client e server web.
Il modello di funzionamento è del tipo richiesta-risposta (request-response), dove un client (tipicamente il browser web) invia una richiesta a un server e il server risponde con le risorse richieste.
La risorsa richiesta dal client è identificata tramite un URL
Il protocollo di trasporto utilizzato è il TCP, la porta standard è l’80 e la 443 per la versione HTTPS.
La richiesta include un metodo (come GET o POST ), l'URL della risorsa richiesta e la versione del protocollo HTTP utilizzata. Inserisce degli HEADER che contengono informazioni aggiuntive che aiutano il server nel gestire la risposta, come i tipi di contenuto che il client può accettare, la lingua, il client.
URL Uniform Resource Locator protocollo://utente:password@host:porta/percorso?query#ancora
Elementi principali
(se diversa da quella predefinita).
passare dati al server. Formato: ?chiave1=valore1&chiave2=valore
Generalmente la risposta che un client riceve ad una richiesta HTTP GET non è la pagina completa. Perchè per la corretta visualizzazione e gestione sono necessarie altre risorse come immagini, script, file css.
Il browser per effettuare il rendering deve avere tutte le risorse a disposizione e non può che chiederle dopo aver ricevuto la prima risposta.
In HTTP/1.0, il client doveva interrompere e rifare la connessione TCP ad ogni nuova richiesta, un'operazione costosa in termini di tempo e risorse.
HTTP/1.1 risolve questo problema introducendo connessioni persistenti e pipelining.
Con le connessioni persistenti, HTTP/1.1 presuppone che una connessione TCP debba essere mantenuta aperta a meno che non venga direttamente ordinato di chiudersi.
Ciò consente al cliente di inviare più richieste utilizzando la stessa connessione senza attendere una risposta per ciascuna , migliorando notevolmente le prestazioni di HTTP/1. rispetto a HTTP/1.0.
Le richieste sono comunque sequenziali e se una richiesta richiede molto tempo o non può essere soddisfatta il ritardo si propaga alle successive. Questo è noto come blocco head-of-line (HOL) e rappresenta un problema significativo per l'ottimizzazione dell'efficienza della connessione in HTTP/1.1.
L'aggiunta di connessioni TCP separate e parallele potrebbe alleviare questo problema, ma ci sono limiti al numero di connessioni TCP simultanee possibili tra un client e un server e ogni nuova connessione richiede risorse significative.
La versione 2.0 di HTTP risolve il problema del blocco delle code effettuando più richieste in parallelo.
Il parallelismo delle richieste richiede una gestione più complessa del dialogo in quanto sulla stessa connessione TCP transitano le risposte in modo non sequenziale.
● Una riga vuota
● Il corpo del messaggio che è opzionale
Viene utilizzato per richiedere una risorsa al server.
GET /mypage.htlp?a=56 HTTP/1. Host: www.example.com User-Agent: Mozilla/5. Accept: text/html
Viene utilizzato per inviare informazioni al server, ad esempio il contenuto di un form o un file.
La risposta di HTTP è composta di 3 parti:
I codici di stato sono di 3 cifre e suddivisi in gruppi:
➔ 1xx informational response – richiesta ricevuta, il processo di gestione è in corso ➔ 2xx successful – nessun problema ➔ 3xx redirection – redirezione ➔ 4xx client error – problema con la richiesta ➔ 5xx server error – richiesta valida ma problema nel server
● Simile al metodo GET, ma restituisce solo l'header della risposta senza il corpo della risorsa. Utile per verificare l'esistenza o le proprietà di una risorsa senza scaricarla.
● Caratteristiche: Idempotente, memorizzabile nella cache e sicuro
● Utilizzi:
● Il metodo PUT è utilizzato per aggiornare o sostituire una risorsa esistente sul server. Se la risorsa non esiste, può anche crearla.
● Caratteristiche: È considerato idempotente, il che significa che inviare più volte la stessa richiesta PUT dovrebbe avere lo stesso effetto di una sola richiesta.
● Utilizzo: Upload di file sul server
● Il metodo DELETE è utilizzato per eliminare una risorsa dal server.
● Caratteristiche: Anche questo è idempotente, quindi eliminare più volte la stessa risorsa non dovrebbe avere effetti diversi rispetto a eliminarla una sola volta.
● Utilizzo: Eliminazione di un file.