CONTATTACI

Guide per aspiranti programmatori

sviluppatore php alla scrivania che sviluppa al pc con un punto interrogativo di curiosità
Lezione 1 / 30

Che cos’è HTTP

HTTP (Hypertext Transfer Protocol) è una delle tecnologie alla base del Web; in particolare, HTTP è un protocollo a livello di applicazione nato per la trasmissione di documenti, come ad esempio i file HTML. Il protocollo HTTP è stato inizialmente pensato per la comunicazione tra web browser e web server, ma può essere usato anche per altri scopi.

HTTP segue uno schema client-server, in cui una applicazione (client) apre una connessione verso il server, effettua una richiesta e attende la risposta del server. Tra le altre caratteristiche di questo protocollo, abbiamo l’essere basato su concetti come risorse e URI (Uniform Resource Identifier) e utilizzare una struttura di messaggi semplice.

HTTP e il Web

Per capire come funziona HTTP, possiamo analizzare il comportamento di un qualsiasi web browser nel momento in cui viene richiesto di caricare una pagina web.

Web Browser come HTTP client

Web Browser come HTTP client

Nel momento in cui diciamo al browser di caricare una certa pagina web, il browser agisce come client HTTP che comunica con un server tramite HTTP. In particolare, supponendo di voler caricare la pagina https://example.com/index.html, il browser aprirà una connessione verso il server e invierà al server un messaggio di richiesta del contenuto del documento HTML index.html che si trova nella root del server web https://example.com. Il messaggio inviato dal browser si chiama richiesta (request).

Ricevuta la richiesta, il server si occuperà di recuperare il contenuto del file richiesto e inviarlo in risposta a chi gli ha fatto richiesta. Anche il server web, quindi, invierà un messaggio che si chiama risposta (response).

Una volta ricevuta il documento HTML il browser comincerà a fare il parsing della pagina per renderizzare e caricare il contenuto e si accorgerà che il documento HTML indica che sono necessari altri file remoti (risorse) per mostrarlo. Per esempio, i file https://example.com/style.css, https://example.com/main.js e https://pictures.example.com/logo.png.

Il browser, quindi, farà partire altri messaggi di richiesta a tutti i vari server, che risponderanno con altrettanti messaggi di risposta.

Lato server web, ognuna di queste richieste è indipendente dalle altre: solo il browser sa che sono collegate tra loro perché servono a caricare una certa pagina. Per questo motivo il protocollo HTTP viene detto stateless (senza stato), poiché non viene mantenuto alcun collegamento tra due richieste fatte sulla stessa connessione.

Quali sono le caratteristiche base del protocollo HTTP

Il protocollo HTTP è stato progettato per essere semplice e la comunicazione HTTP avviene con pochi componenti in gioco, in particolare:

  • client: è il componente che inizia una richiesta, il web browser nel caso del web, ma potrebbe anche essere una app che comunica con un server API
  • server: un server non è necessariamente una singola macchina, anche se virtualmente può apparire come tale; riceve le richieste e risponde con il contenuto richiesto, nel fare ciò potrebbero entrare in gioco componenti quali load balancer, cache, database, …
  • proxy: nel mondo reale, tra il client e il server ci possono essere diversi computer che si “passano” la richiesta e la risposta per farla arrivare alla macchina giusta; basti pensare al fatto che il proprio computer potrebbe non essere l’unico in casa a richiedere la homepage di Google; i proxy intervengono a un livello più basso, ma garantiscono che richiesta e risposta siano correttamente consegnate

Altre caratteristiche importanti del protocollo HTTP che è importante annotare sono:

  • semplicità: i messaggi HTTP, come vedremo tra poco, sono semplici e facilmente comprensibili anche da occhio umano, rendendo, quindi, agevole effettuare prove a mano e verificare il contenuto delle risposte
  • estendibilità: è possibile introdurre nuove funzionalità, basta che client e server siano in grado di gestire l’estensione; un esempio importante di estensione del protocollo HTTP, sono gli header, non presenti nella prima versione di questo protocollo, ma aggiunti in seguito, permettono di passare informazioni aggiuntive nei messaggi (i famosi cookie sono scambiati nell’header Cookie)

Flusso HTTP e messaggi

Una comunicazione HTTP dal punto si comporta nel dettaglio nel modo seguente:

  • il client apre una connessione TCP con il server: in pratica, instaura un canale per inviare e ricevere messaggi (il client può riusare una connessione già aperta o crearne una nuova, a seconda dei casi)
  • il client invia un messaggio HTTP di richiesta, che contiene anche gli eventuali header, per esempio:
  • GET /index.php HTTP/1.1
    Host: example.com
    Accept-Language: it
  • il server riceve la risposta, verifica se e come elaborarla, produce e invia una risposta
  • il client legge la risposta del server, per esempio
  • HTTP/1.1 200 OK
    Date: 09 Jan 2023 14:28:02 GMT
    Server: Nginx
    Last-Modified: 27 Dec 2022 20:18:22 GMT
    Accept-Ranges: bytes
    Content-Length: 29769
    Content-Type: text/html
    <!DOCTYPE html>
  • il client chiude la connessione o la lascia aperta per futuri utilizzi

Approfondimenti

  • i server web moderni usano il protocollo HTTPS (HyperText Transfer Protocol over Secure Socket Layer), che è una estensione di HTTP che usa la crittografia per rendere sicura la comunicazione tra client e server
  • con protocollo a livello di applicazione si fa riferimento ai vari livelli di astrazione con cui possono comunicare computer via rete; in particolare l’application layer è il livello più alto tra i vari presenti
  • il protocollo HTTP è stateless, ma non è sessionless: la possibilità di creare una sessione tra client e server, resa possibile dai cookie gestiti tramite gli header di messaggio del protocollo HTTP, permette a client e server di sapere, ad esempio, che un certo utente è collegato a un sito di e-commerce per fare acquisti.

Contattaci senza impegno per informazioni sul corso

Pagamento rateale

Valore della rata: A PARTIRE DA 115 €/mese.

Esempio di finanziamento 

Importo finanziato: € 2440 in 24 rate da € 115 – TAN fisso 9,55% TAEG 12,57% – importo totale del credito € 2841.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

*In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 210 €/mese.

Esempio di finanziamento  

Importo finanziato: € 4500 in 24 rate da € 210,03 – TAN fisso 9,68% TAEG 11,97% – importo totale del credito € 5146,55.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.