HTTP e HTTP/2: funzionamento, virtual hosting e progettazione dell'infrastruttura web

Classificato in Informatica

Scritto il in italiano con una dimensione di 3,77 KB

HTTP e HTTP/2

HyperText Transfer Protocol è il protocollo di livello applicazione che sta alla base del World Wide Web (WWW). Si occupa di definire la struttura dei messaggi scambiati in una transazione client-server per la richiesta e il trasferimento di pagine Web. In pratica fa da trasportatore di pagine web tra server e client.

Funzionamento

I messaggi HTTP sono scritti in ASCII e si suddividono in messaggi di richiesta e di risposta. HTTP è un protocollo senza stato, siccome i server HTTP non mantengono alcuna informazione dei client. Per le trasmissioni necessita di un livello di trasporto affidabile (senza perdita di pacchetti) e si appoggia quindi al protocollo TCP, tradizionalmente sulla porta 80 per HTTP.

Pagina web

La pagina web è composta da uno o più oggetti (file indirizzabili ad un URL) che possono essere codice HTML, immagini, audio ecc. Generalmente la pagina è costituita da un file HTML e da altri oggetti il cui file HTML giunge attraverso gli URL.

Tipologie di contenuti

  • Contenuti statici: file che non hanno bisogno di un'elaborazione da parte del server, come per esempio immagini e testi HTML.
  • Contenuti dinamici: vengono costruiti al momento della richiesta in base a file tipo script che necessitano di una preelaborazione. Possono essere immagini, testi e contenuti multimediali costruiti in PHP, ecc.

Server web

I server web implementano sia il lato server del HTTP sia il database che contiene gli oggetti statici delle pagine web che risiedono su quel web server, e tutti i file da elaborare per costruire gli oggetti dinamici.

Browser

Il browser realizza le funzionalità di client web, inviando richieste HTTP e mostrando le risorse ricevute.

Virtual hosting (o multi-homing)

Virtual hosting: più siti Web ospitati su una singola macchina.

Due architetture possibili:

  • Molteplici demoni httpd.
  • Un singolo demone httpd (es. Apache).

Tipi di virtual hosting

  • Basato sul nome di dominio (name-based): al singolo indirizzo IP sono associati più nomi di dominio a livello di DNS. Una o più NIC a cui sono associati uno o più nomi logici (usando l'alias CNAME a livello di DNS).
  • Basato sull'indirizzo IP (IP-based): il server è dotato di uno o più indirizzi IP (reali o virtuali). Una o più NIC a cui sono associati uno o più indirizzi IP (usando il comando ifconfig con alias).

Design di un'infrastruttura web

Per strutturare una rete che dovrà erogare servizi web occorre tener conto di:

  • Risorse finanziarie disponibili.
  • Conoscenze del personale.
  • Vincoli dovuti a una eventuale struttura preesistente.
  • Traffico previsto.
  • Tipo di servizio erogato (dati personali, sensibili, critici).
  • Criticità del servizio (quanto è sopportabile un eventuale downtime del servizio).
  • Eventuale espansione della web farm.
  • Necessità di interfacciamento con altri sistemi.

Tutto ciò influenza la progettazione e le scelte per implementare un'infrastruttura web.

Tipologie di implementazione

Per semplificare si possono così suddividere i possibili tipi di implementazioni:

  • Singolo server: gestione di basso traffico.
  • Media: infrastruttura per medi carichi.
  • Complessa: infrastruttura per alti carichi.

Voci correlate: