Cos'è HTTP?

L'Hypertext Transfer Protocol viene utilizzato per caricare pagine su Internet utilizzando collegamenti ipertestuali.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Definire il concetto di HTTP
  • Descrivere l'anatomia delle richieste e delle risposte HTTP
  • Scoprire come gli attacchi DDoS possono essere avviati su HTTP

Argomenti correlati


Vuoi saperne di più?

Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.

Fai riferimento all'Informativa sulla privacy di Cloudflare per scoprire come raccogliamo ed elaboriamo i tuoi dati personali.

Copia link dell'articolo

Cos'è HTTP?

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.

Cosa contiene una richiesta HTTP?

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:

  1. Il tipo di versione HTTP
  2. Un URL
  3. Un metodo HTTP
  4. Intestazioni delle richieste HTTP
  5. Corpo HTTP facoltativo.

Esploriamo in modo più approfondito come funzionano queste richieste e come i contenuti di una richiesta possono essere utilizzati per condividere informazioni.

Report
Lo stato delle minacce DDoS: terzo trimestre 2023

Report
Leggi il report sul panorama delle minacce DDoS nel quarto trimestre 2023

Cos'è un metodo HTTP?

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).

Cosa sono le intestazioni delle richieste HTTP?

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:

Intestazioni delle richieste HTTP

Protezione da attacchi DDoS
Ottieni la protezione da attacchi DDoS con qualsiasi piano Cloudflare

Cosa contiene il corpo di una richiesta HTTP?

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.

Cosa contiene una risposta HTTP?

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:

  1. Un codice di stato HTTP
  2. Intestazioni di risposta HTTP
  3. Corpo HTTP opzionale
  4. Analizziamoli:

    Cos'è un codice di stato HTTP?

    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:

    1. 1xx Informativo
    2. 2xx Operazione riuscita
    3. 3xx Reindirizzamento
    4. 4xx Errore del client
    5. 5xx Errore del server
    6. "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.

      Cosa sono le intestazioni di risposta HTTP?

      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:

      Intestazioni di risposta HTTP

      Cosa contiene un corpo di risposta HTTP?

      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.

      Gli attacchi DDoS possono essere avviati su HTTP?

      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.