Che cos'è HTTP?
Il protocollo di trasferimento ipertestuale (HTTP) è un insieme di regole per il trasferimento di file multimediali sul web. HTTP è un protocollo di livello applicativo che specifica procedure di comunicazione condivise e metodi di interfaccia utilizzati da client o server in una rete di comunicazione.
HTTP è un protocollo senza stato che svolge un ruolo essenziale nell'introduzione dei cookie. Comunica tra client e server ed esegue una serie di richieste e risposte.
Un client o un browser invia una richiesta HTTP al web. Il server web riceve la richiesta, esegue un'applicazione per elaborarla e restituisce una risposta HTTP al browser. Questa interazione tra client e server aiuta le persone a visualizzare e trasferire file sul web. Alcune aziende possono utilizzare software di protocollo di trasferimento file per assistere nel processo.
Come funziona HTTP
HTTP è un protocollo utilizzato per comunicare tra server e dispositivi client durante l'interazione con siti web o applicazioni web. Come funziona è descritto di seguito.
- Scambio di risorse su Internet tra dispositivi client e server. Il dispositivo client condivide una richiesta con il server per inviare risorse per il caricamento dei file della pagina web. Il server risponde condividendo risorse. Tutte le richieste/risposte condividono sotto-documenti che contengono dati memorizzati nel browser web del client per visualizzare la pagina web.
- Un browser web è un client che invia la richiesta a un server. Un server web contiene anche un demone HTTP, un programma che viene eseguito come processo in background. Questo programma attende le richieste HTTP e le gestisce quando arrivano.
- I tre principali tipi di messaggi HTTP sono GET, POST e HEAD. Nel primo tipo, i messaggi inviati al server contengono solo un URL. Il server elabora la parte opzionale dei dati dell'URL e invia il risultato al browser. Nel secondo tipo, i messaggi posizionano i parametri dei dati opzionali nel corpo del messaggio di richiesta invece di aggiungerli alla fine dell'URL. Il terzo tipo è simile alle richieste GET; il server invia solo le informazioni dell'intestazione anziché l'intero URL.
- Il browser avvia una connessione del protocollo di controllo della trasmissione (TCP) al server per avviare la comunicazione con un server HTTP. Per impostazione predefinita, la porta del server 80 è utilizzata per le sessioni di navigazione web.
- Una volta stabilita una sessione e l'utente visita la pagina web, si attiva l'invio e la ricezione di messaggi HTTP.
- Poiché HTTP è un sistema senza stato, la connessione HTTP viene interrotta una volta completata la richiesta, a differenza dei protocolli di trasferimento file come FTP. Ciò significa che la connessione si chiude una volta che il browser web invia una richiesta e il server risponde ad essa.
Tipi di metodi di richiesta HTTP
I metodi di richiesta più comunemente usati sono menzionati di seguito.
- GET legge e recupera dati da un server. Il codice di stato HTTP diventa 200 OK quando i dati raccolti dal server sono accurati.
- POST trasmette dati al server. Alla creazione riuscita, produce un codice di stato di 201.
- PUT modifica i dati del server. Sostituisce tutto il contenuto da una posizione specifica con i dati del payload del corpo. Ne genera uno se nessuna risorsa corrisponde alla richiesta.
- PATCH funziona in modo simile a una richiesta PUT, ma modifica solo una parte dei dati.
- DELETE rimuove dati da una posizione particolare sul server.
Componenti di una richiesta HTTP
Una richiesta HTTP comprende cinque componenti chiave.
- Metodi HTTP contengono un insieme di metodi di richiesta che eseguono azioni dedicate, tra cui GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS e TRACE. Le azioni possono essere ampliate se necessario.
- Identificatore di Risorsa Uniforme (URI) è una sequenza di caratteri unica che identifica la risorsa logica o fisica utilizzata da una tecnologia web.
- HTTP ha quattro versioni: HTTP v0.9, HTTP v1.0, HTTP v1.1 e HTTP v2.0. Mentre HTTP v1.1 è comunemente usato, HTTP v2.0 è considerato il futuro delle versioni HTTP.
- Intestazione della richiesta contiene più informazioni sul contesto della richiesta o sul client che richiede la risorsa. Ad esempio: Accept-*, Accept-Encoding.
- Il payload comando aiuta gli utenti a recuperare contenuti, interrogare la dimensione del contenuto o sostituire qualsiasi contenuto. Ad esempio: HTTP_REQUEST_DATA e HTTP_RESPONSE_DATA.
Codici di stato della risposta HTTP
I codici di stato della risposta HTTP indicano se una particolare richiesta è stata completata. Le risposte sono generalmente categorizzate in classi; esistono diversi codici di stato in ciascuna categoria. Ogni codice rappresenta una particolare azione.
- Risposte informative includono 100 Continue, 101 Switching Protocols, 102 Processing e 103 Early Hints.
- Codici di risposta di successo sono 200 OK, 201 Created, 202 Accepted, 203 Non-Authoritative Information, 204 No Content, 205 Reset Content, 206 Partial Content, 207 Multi-Status, 208 Already Reported, 226 IM e Used.
- Messaggi di reindirizzamento codici sono 300 Multiple Choices, 301 Moved Permanently, 302 Found, 303 See Other, 304 Not Modified, 305 Use Proxy, 306 Unused, 307 Temporary Redirect e 308 Permanent Direct.
- Risposte di errore del client includono 400 Bad Request, 401 Unauthorized, 402 Payment Required, 403 Forbidden, 404 Not Found, 405 Method Not Allowed, 406 Not Acceptable, 407 Proxy Authentication Required, 408 Request Timeout, 409 Conflict, 410 Gone e molti altri.
- Risposte di errore del server includono 500 Internal Server Error, 501 Not Implemented, 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout, 505 HTTP Version Not Supported, ecc.
Proxy HTTP
Di seguito sono riportati alcuni dettagli notevoli sui proxy HTTP.
- I proxy HTTP o server proxy sono server di livello applicativo, computer e altre macchine che agiscono come intermediari tra client e server.
- Quando una richiesta web viene inviata a un sito web utilizzando un proxy, va al server proxy come testo in chiaro. Il server proxy analizza e invia una nuova proposta al sito web, cambiando l'indirizzo IP dell'utente. Una volta che il sito web riceve la richiesta, risponde al server proxy.
- Tre tipi di proxy sono basati sull'anonimato. Sono Proxy Trasparente, Proxy Anonimo e Proxy Elite/Alta Anonimato.
HTTP vs. HTTPS
HTTP e HTTPS differiscono per quanto riguarda la sicurezza, le prestazioni e i benefici per l'ottimizzazione dei motori di ricerca.
HTTP consente la comunicazione tra sistemi trasferendo informazioni e dati su una rete. Mentre Hypertext Transfer Protocol Secure (HTTPS) è simile a HTTP, questo protocollo garantisce una comunicazione sicura tra server web e browser durante l'invio di dati. HTTPS utilizza un protocollo di sicurezza digitale con chiavi crittografiche per la crittografia e la validazione.
HTTP non ha crittografia. Ciò significa che la falsificazione dei messaggi, il furto di dati e l'intercettazione sono più probabili rispetto a HTTPS, che è protetto da un livello di socket sicuro (SSL). Dati come ID utente e password sono crittografati. Mentre il protocollo HTTP funziona nel livello applicativo, il protocollo HTTPS funziona nel livello di trasporto.
L'uso di HTTP e HTTPS varia a seconda del tipo di sito o dei dati che gli utenti possono gestire. Tuttavia, è anche vero che HTTPS è il protocollo standard per la maggior parte dei siti web al giorno d'oggi. Passare da HTTP a HTTPS comporta ottenere e installare un certificato SSL per il sito web.
Scopri di più su multiprotocol label switching (MPLS) per comprendere il meccanismo di instradamento del traffico utilizzato nelle reti di telecomunicazioni.

Sagar Joshi
Sagar Joshi is a former content marketing specialist at G2 in India. He is an engineer with a keen interest in data analytics and cybersecurity. He writes about topics related to them. You can find him reading books, learning a new language, or playing pool in his free time.
