Seguici su Telegram, ne vale la pena ❤️ ➡ @trovalost
Vai al contenuto

Che cos’è HTTP: come funziona e a cosa serve

HTTP è il protocollo fondamentale per il funzionamenti di internet, e consiste in un acronimo che sta per HyperText Transfer Protocol da cui, appunto, le iniziali HTTP. Un protocollo di comunicazione ideato per gli ipertesti che viene utilizzato prevalentemente per la visualizzazione di pagine web mediante browser, come Edge, Firefox, Safari e Chrome.

Il protocollo HTTP lavora sulla porta 80, in generale, e a differenza di HTTPS non fa uso di alcuna crittografia, per cui è potenzialmente insicuro ed intercettabile dall’esterno.

Definizione HTTP

HTTPS significa Protocollo di trasferimento per ipertesti (HyperText Transfer Protocol). Perchè venga utilizzato è subito detto: consente di effettuare comunicazioni sicure a livello internet, quindi (ma non solo) sul web e sui siti web che consultiamo ogni giorno. HTTP, ovvero il protocollo di trasferimento ipertestuale, è stato per molti anni la sostanziale backbone o “spina dorsale” del WEB cosଠcome abbiamo imparato a conoscerlo. A livello di protocollo, in genere il server rimane in attesa di connessioni da parte del client, sfruttando il cosiddetto TCP e lavorando in modo asincrono, quindi esclusivamente all’occorrenza. Nella realtà  di internet odierna, comunque, HTTP è ancora utilizzato come meccanismo di comunicazione tra browser e siti e tra client e servizi web più in genere, per quanto sia ormai preferibile fare sempre e comunque uso di HTTPS.

Come “comunicano” client e server via HTTP (request)

Su internet esistono client (i nostri computer o cellulari connessi al web) e server (le macchine che ad esempio fanno funzionare web service, siti web o app): noi comunichiamo usando le reti offerte da internet come mezzo trasmissivo fisico, e HTTP viene sfruttato a livello applicativo. HTTP, un po’ come HTTPS, lavora sulla base di varie request. Una request o richiesta è un modo per comunicare (vedi video successivo), e la cosa importante da sapere è che essa viene creata dal browser dell’utente quando l’utente esegue una certa interazione con un sito web (ad esempio, decide di aprirlo oppure preme un pulsante o invia dati in un form).

La request è in genere considerata a livello programmativo come una singola richiesta, che potrebbe non avere un corrispettivo “visuale” ma essere, ad esempio, una parte di un’operazione più complicata: ad esempio se inviamo i dati della nostra carta di credito su una connessione sicura in HTTPS, è plausibile che ci siano più request di autenticazione e/o trasmissione in una singola operazione.

L’esempio della trasmissione dei dati della carta di credito su internet è tutt’altro che incidentale: HTTPS entra proprio in queste fasi, serve a garantire che la trasmissione avvenga soltanto per l’acquisto che ci siamo prefissi, e limita la possibilità  che i dati della carta vengono rilevati da intrusi esterni che potrebbero, ad esempio, clonarci la carta di credito. Stesso discorso vale quando facciamo login su Facebook, inserendo i dati della nostra carta di credito: la connessione deve essere mantenuta sicura perchè altrimenti potrebbero rubarci l’account, stessa cosa per il sito della nostra banca, per la nostra email, per Instagram e via dicendo.

Un esempio di request HTTP alla home, a livello interno, rivolta al sito pippo.com, potrebbe essere mediante la request di tipo GET, che è come se fosse eseguita, in questa sede, via terminale di comando:

GET / HTTP/1.1
Host: pippo.com

A questo punto, una potenziale risposta avrebbe la forma di una serie di header di risposta, non visibili al client, e subito dopo il contenuto in formato HTML della pagina home. Notiamo che ogni riga contiene un’informazione diversa, quindi lo status (200 vuol dire “tutto ok”), la data della risposta, informazioni sul tipo di contenuto e sulla dimensione HTML della pagina in byte, la data dell’ultima modifica ed il contenuto di ETag (in caso di cache in uso nel sito), il tipo di server in uso ed altre informazioni tecniche non primarie.

HTTP/1.1 200 OK
Date: Mon, 24 Dec 2020 11:37:12 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 168
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
ETag: "3f20f-1b6-3e1db03b"
Accept-Ranges: bytes
Connection: close

<html>
  <head>
    <title>Salve, questa è la home di Pippo.com</title>
  </head>
  <body>
    <p>Un esempio facile facile per capire HTTP e le request su cui si basa.</p>
  </body>
</html>

 

Cosa cambia tra HTTP e HTTPS?

Anche se visivamente le pagine web vengono visualizzate allo stesso modo, HTTP non è protetta da crittografia mentre HTTPS è protetta. In altri termini, una connessione HTTP potrebbe essere falsificata facilmente (un sito potrebbe “spacciarsi” per chi non è realmente, usando HTTP) e al tempo stesso la comunicazione in HTTP potrebbe essere spiata via sniffer.comprensibile.

In una comunicazione con HTTP, durante una sessione di login l’utente potrebbe ad esempio comunicare:

Username: pippo

Password: lapassworddipippo

più un set di ulteriori dati in chiaro, cioè leggibili dall’esterno, su browser, IP, ed altri dati utili nella comunicazione che cambiano a seconda delle implementazioni.

Nella stessa comunicazione via HTTPS, invece, trasmetteremo un blocco di dati criptato che potrebbe essere ad esempio:

0634EDDE0DE827BD447FBE496F3FC61E2B63BE1B

è la stessa comunicazione di prima, ovviamente, solo che è crittografata e quindi leggibile solo dal destinatario legittimo, secondo le “regole” o le politiche interne stabilite dal protocollo HTTPS in questione.

Da non perdere 👇👇👇



Trovalost esiste da 4450 giorni (12 anni), e contiene ad oggi 5118 articoli (circa 4.094.400 parole in tutto) e 13 servizi online gratuiti. – Leggi un altro articolo a caso
Non ha ancora votato nessuno.

Ti sembra utile o interessante? Vota e fammelo sapere.

Questo sito contribuisce alla audience di sè stesso.
Il nostro network informativo: Lipercubo.it - Pagare.online - Trovalost.it.