HTTP (Hypertext Transfer Protocol)

Cos'è l'HTTP?

HTTP (Hypertext Transfer Protocol) è l'insieme di regole per il trasferimento di file - come testo, immagini, suoni, video e altri file multimediali - sul web. Non appena un utente apre il proprio browser web, utilizza indirettamente HTTP. HTTP è un protocollo applicativo che viene eseguito sulla suite di protocolli TCP / IP, che costituisce la base di Internet. L'ultima versione di HTTP è HTTP / 2, pubblicata a maggio 2015. È un'alternativa al suo predecessore, HTTP 1.1, ma non lo rende obsoleto.

Come funziona HTTP

Attraverso il protocollo HTTP, le risorse vengono scambiate tra dispositivi client e server su Internet. I dispositivi client inviano richieste ai server per le risorse necessarie per caricare una pagina web; i server inviano le risposte al cliente per soddisfare le richieste. Richieste e risposte condividono documenti secondari, come dati su immagini, testo, layout di testo, ecc., Che vengono messi insieme da un browser Web client per visualizzare l'intero file della pagina Web.

Oltre ai file della pagina web che può servire, un server web contiene un demone HTTP, un programma che attende le richieste HTTP e le gestisce quando arrivano. Un browser Web è un client HTTP che invia richieste ai server. Quando l'utente del browser immette richieste di file "aprendo" un file Web digitando un URL o facendo clic su un collegamento ipertestuale, il browser crea una richiesta HTTP e la invia all'indirizzo del protocollo Internet (indirizzo IP) indicato dall'URL. Il daemon HTTP nel server di destinazione riceve la richiesta e restituisce il file oi file richiesti associati alla richiesta.

diagramma di client http, internet e server

I dispositivi client utilizzano HTTP per comunicare con i server in linea e accedere alle pagine Web.

Per espandere questo esempio, un utente desidera visitare TechTarget.com. L'utente digita l'indirizzo web e il computer invia una richiesta "GET" a un server che ospita quell'indirizzo. Tale richiesta GET viene inviata utilizzando HTTP e comunica al server TechTarget che l'utente sta cercando il codice HTML (Hypertext Markup Language) utilizzato per strutturare e dare alla pagina di accesso il suo aspetto e il suo aspetto. Il testo di quella pagina di accesso è incluso nella risposta HTML, ma altre parti della pagina, in particolare le immagini e i video, sono richieste da richieste e risposte HTTP separate. Più richieste vengono fatte, ad esempio per chiamare una pagina che ha numerose immagini, più tempo impiegherà il server a rispondere a quelle richieste e al sistema dell'utente per caricare la pagina.

Quando queste coppie richiesta / risposta vengono inviate, utilizzano TCP / IP per ridurre e trasportare le informazioni in piccoli pacchetti di sequenze binarie di uno e zeri. Questi pacchetti vengono fisicamente inviati tramite fili elettrici, cavi in ​​fibra ottica e reti wireless.

Le richieste e le risposte utilizzate da server e client per condividere i dati tra loro sono costituite da codice ASCII. Le richieste indicano quali informazioni il client sta cercando dal server; le risposte contengono codice che il browser client tradurrà in una pagina web.

HTTP contro HTTPS

HTTPS è l'uso di Secure Sockets Layer (SSL) o Transport Layer Security (TLS) come sottolivello sotto la normale stratificazione dell'applicazione HTTP. HTTPS crittografa e decrittografa le richieste di pagine HTTP dell'utente e le pagine restituite dal server web. Protegge anche da intercettazioni e attacchi man-in-the-middle (MitM). HTTPS è stato sviluppato da Netscape. La migrazione da HTTP a HTTPS è considerata vantaggiosa, poiché offre un ulteriore livello di sicurezza e affidabilità.

Richieste e risposte HTTP

Ogni interazione tra il client e il server è chiamata messaggio. I messaggi HTTP sono richieste o risposte. I dispositivi client inviano richieste HTTP ai server, che rispondono inviando risposte HTTP ai client.

Richieste HTTP. Questo è quando un dispositivo client, come un browser Internet, richiede al server le informazioni necessarie per caricare il sito web. La richiesta fornisce al server le informazioni desiderate di cui ha bisogno per adattare la sua risposta al dispositivo client. Ogni richiesta HTTP contiene dati codificati, con informazioni come:

  • Seguì la versione specifica di HTTP. HTTP e HTTP / 2 sono le due versioni.
  • Un URL. Questo punta alla risorsa sul web.
  • Un metodo HTTP. Indica l'azione specifica che la richiesta si aspetta di ricevere dal server nella sua risposta.
  • Intestazioni delle richieste HTTP. Ciò include dati come il tipo di browser utilizzato e quali dati la richiesta sta cercando dal server. Può includere anche cookie, che mostrano informazioni precedentemente inviate dal server che gestisce la richiesta.
  • Un corpo HTTP. Si tratta di informazioni opzionali di cui il server ha bisogno dalla richiesta, come i moduli utente - login con nome utente / password, risposte brevi e caricamenti di file - che vengono inviati al sito web.

Risposte HTTP. Il messaggio di risposta HTTP è costituito dai dati ricevuti da un dispositivo client dal server web. Come suggerisce il nome, la risposta è la risposta del server a una richiesta HTTP. Le informazioni contenute in una risposta HTTP sono adattate al contesto che il server ha ricevuto dalla richiesta. Le risposte HTTP in genere includono i seguenti dati:

  • Codice di stato HTTP, che indica lo stato della richiesta al dispositivo client. Le risposte possono indicare un esito positivo, una risposta informativa, un reindirizzamento o errori sul lato server o client.
  • Intestazioni delle risposte HTTP, che invia informazioni sul server e sulle risorse richieste.
  • Un corpo HTTP (opzionale). Se una richiesta ha esito positivo, contiene i dati richiesti sotto forma di codice HTML, che viene tradotto in una pagina web dal browser del client.

Codici di stato HTTP

In risposta alle richieste HTTP, i server spesso emettono codici di risposta, indicando che la richiesta è in fase di elaborazione, si è verificato un errore nella richiesta o che la richiesta è stata reindirizzata. I codici di risposta comuni includono:

  • 200 OK. Ciò significa che la richiesta, ad esempio GET o POST, ha funzionato ed è stata presa in considerazione.
  • 300 spostati in modo permanente. Questo codice di risposta significa che l'URL della risorsa richiesta è stato modificato in modo permanente.
  • 401 Non autorizzato. Il client, o l'utente che effettua la richiesta al server, non è stato autenticato.
  • 403 Proibita. L'identità del cliente è nota ma non è stata concessa l'autorizzazione all'accesso.
  • 404 non trovato. Questo è il codice di errore più frequente. Significa che l'URL non è riconosciuto o la risorsa nella posizione non esiste.
  • 500 Errore interno del server. Il server ha riscontrato una situazione che non sa come gestire.

Proxy in HTTP

I proxy, o server proxy, sono i server a livello di applicazione, i computer o altre macchine che si collegano tra il dispositivo client e il server. I proxy inoltrano le richieste e le risposte HTTP tra il client e il server. In genere, sono presenti uno o più proxy per ciascuna interazione client-server.

I proxy possono essere trasparenti o non trasparenti. I proxy trasparenti non modificano la richiesta del client ma la inviano al server nella sua forma originale. I proxy non trasparenti modificheranno in qualche modo la richiesta del cliente. I proxy non trasparenti possono essere utilizzati per servizi aggiuntivi, spesso per aumentare la velocità di recupero del server.

Gli sviluppatori Web possono utilizzare proxy per i seguenti scopi:

  • Caching. I server cache possono salvare le pagine Web o altri contenuti Internet in locale, per un recupero più rapido dei contenuti e per ridurre la richiesta di larghezza di banda del sito.
  • Autenticazione. Controllo dei privilegi di accesso alle applicazioni e alle informazioni in linea.
  • Registrazione. La memorizzazione dei dati storici, come gli indirizzi IP dei client che hanno inviato richieste al server.
  • Web filtering. Controllo dell'accesso a pagine Web che possono compromettere la sicurezza o includere contenuti inappropriati.
  • Bilancio del carico. Le richieste del client al server possono essere gestite da più server, anziché da uno solo.

Per ulteriori informazioni sul funzionamento dei proxy e su altri tipi di proxy, fare clic qui.