L'Hypertext Transfer Protocol viene utilizzato per caricare pagine su Internet utilizzando collegamenti ipertestuali.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
L'Hypertext Transfer Protocol (HTTP) è la base del World Wide Web e viene utilizzato per caricare le pagine Web tramite collegamenti ipertestuali. HTTP è un protocollo a livello di applicazione progettato per trasferire informazioni tra dispositivi in una rete e viene eseguito su altri livelli dello stack del protocollo di rete. Un tipico flusso su HTTP coinvolge una macchina client che effettua una richiesta a un server, che quindi invia un messaggio di risposta.
Una richiesta HTTP è il modo in cui le piattaforme di comunicazione Internet come i browser Web richiedono le informazioni di cui hanno bisogno per caricare un sito Web.
Ogni richiesta HTTP effettuata su Internet porta con sé una serie di dati codificati che trasportano diversi tipi di informazioni. Una tipica richiesta HTTP contiene:
Esploriamo in modo più approfondito come funzionano queste richieste e come i contenuti di una richiesta possono essere utilizzati per condividere informazioni.
Un metodo HTTP, a volte indicato come verbo HTTP, indica l'azione che la richiesta HTTP si aspetta dal server sottoposto a query. Ad esempio, due dei metodi HTTP più comuni sono "GET" e "POST"; una richiesta "GET" prevede l'invio di informazioni in cambio (di solito sotto forma di un sito Web), mentre una richiesta "POST" indica in genere che il client sta inviando informazioni al server Web (come informazioni di moduli, ad esempio un nome utente e una password inviati).
Le intestazioni HTTP contengono informazioni di testo memorizzate in coppie chiave-valore e sono incluse in ogni richiesta HTTP (e risposta, ne parleremo più avanti). Queste intestazioni comunicano informazioni di base, come il browser utilizzato dal client e quali dati vengono richiesti.
Esempio di intestazioni di richieste HTTP nella scheda di rete di Google Chrome:
Il corpo di una richiesta è la parte che contiene il "corpo" delle informazioni che la richiesta sta trasferendo. Il corpo di una richiesta HTTP contiene tutte le informazioni inviate al server Web, come nome utente e password o qualsiasi altro dato inserito in un modulo.
Una risposta HTTP è quello che i client Web (spesso browser) ricevono da un server Internet in risposta a una richiesta HTTP. Queste risposte comunicano informazioni preziose in base a quanto è stato richiesto nella richiesta HTTP.
Una tipica risposta HTTP contiene:
Analizziamoli:
I codici di stato HTTP sono codici a tre cifre, utilizzati spesso per indicare se una richiesta HTTP è stata completata correttamente. I codici di stato sono suddivisi nei seguenti cinque blocchi:
"xx" si riferisce a numeri diversi compresi tra 00 e 99.
I codici di stato che iniziano con il numero "2" indicano un'operazione riuscita. Ad esempio, dopo che un client ha richiesto una pagina Web, le risposte più comunemente visualizzate hanno un codice di stato "200 OK", che indica che la richiesta è stata completata correttamente.
Se la risposta inizia con un "4" o un "5", significa che si è verificato un errore e la pagina Web non verrà visualizzata. Un codice di stato che inizia con un "4" indica un errore lato client (è molto comune riscontrare un codice di stato "404 NOT FOUND" quando si effettua un errore di battitura in un URL). Un codice di stato che inizia con "5" significa che si è verificato un problema sul lato server. I codici di stato possono anche iniziare con un "1" o un "3", che indicano rispettivamente una risposta informativa e un reindirizzamento.
Proprio come una richiesta HTTP, una risposta HTTP viene fornita con intestazioni che trasmettono informazioni importanti come la lingua e il formato dei dati inviati nel corpo della risposta.
Esempio di intestazioni di risposta HTTP nella scheda di rete di Google Chrome:
Le risposte HTTP riuscite alle richieste "GET" hanno generalmente un corpo che contiene le informazioni richieste. Nella maggior parte delle richieste Web, si tratta di dati HTML che un browser Web tradurrà in una pagina Web.
Tieni presente che HTTP è un protocollo "stateless", il che significa che ogni comando viene eseguito indipendentemente da qualsiasi altro. Nella specifica originale, le richieste HTTP creavano e chiudevano una connessione TCP. Nelle versioni più recenti del protocollo HTTP (HTTP 1.1 e versioni successive), la connessione persistente consente il passaggio di più richieste HTTP su una connessione TCP persistente, migliorando il consumo di risorse. Nel contesto degli attacchi DoS o DDoS, le richieste HTTP possono essere utilizzate in grandi quantità per sferrare un attacco a un dispositivo preso di mira e sono considerate parte degli attacchi a livello di applicazione o di livello 7.