Home News Dall’hosting al cloud computing: storia del protocollo HTTP
Dall’hosting al cloud computing: storia del protocollo HTTP PDF Stampa E-mail
Martedì 03 Marzo 2015 16:00

Dall'hosting al cloud computing: storia del protocollo HTTP

Oggi sembra tutto così semplice. Chi ha bisogno del proprio spazio sul Web non deve fare altro che cercare l’offerta migliore per le proprie esigenze. Chi vuole pubblicare un sito può rivolgersi a un provider hosting, come Aruba con i suoi piani. Chi vuole sviluppare una web app può attivare una VPS, un server dedicato o, ancora meglio, un cloud server. Chi desidera mettere in piedi un proprio piccolo data center, può sfruttare le tecnologie cloud più avanzate, come il … di Aruba. Tutto a portata di clic.

Una volta non era certo così. Agli albori di Internet, anche il protocollo HTTP non era adatto a supportare tutta la tecnologia che oggi si ha disposizione sul Web. Tutto era più semplice, più limitato e pensato per svolgere piccole operazioni essenziali e nessuno all’epoca avrebbe immaginato che Internet si sarebbe sviluppata con questa velocità e con questa capacità multimediale.

Il World Wide Web era un umile progetto di ricerca dell’istituto svizzero CERN e il suo obiettivo principale era quello di servire le referenze.

In pratica, i ricercatori volevano mettere a disposizione degli scienziati un archivio elettronico in cui da un documento se ne potesse risalire a un altro collegato tramite referenza. Questo sistema veniva definito hypertext o ipertesto, perché sembrava che questo collegamento fra i documenti (corrispondente all’attuale link) permettesse di accrescere la conoscenza oltre il semplice testo del documento che si stava consultando.

Un progetto per le referenze: nasce il protocollo HTTP

Per assolvere a questa funzione, i primi sviluppatori del Web crearono un’applicazione del protocollo TCP/IP che non a caso si chiamava HyperText Transfer Protocol o HTTP.

L’obiettivo era semplice: consentire il trasferimento di un documento quando questo veniva richiesto tramite una referenza.

A pensare alla prima formulazione del protocollo HTTP è stato Tim Berners-Lee che aveva come unico scopo quello di mantenere il sistema il più semplice possibile. Nel 1991 Berners-Lee definì quello che sarebbero state le funzionalità dell’HTTP, ossia l’abilità a trasferire file, a richiedere una ricerca indicizzata di un archivio di ipertesti e a collegare un client con un server per il recupero del documento richiesto.

Il protocollo fu quindi sviluppato in modo tale che un client inviasse una richiesta che terminasse con un ritorno a capo e che il server rispondesse con uno stream ASCII o un documento HTML (HyperText Markup Language) e si chiudesse la connessione.

Questa primissima versione del protocollo HTTP, di cui non se ne poteva creare una più semplice, è passata alla storia targata come HTTP 0.9, ma mai divenuta, in realtà, un vero e proprio formato standard come da RFC.

Con HTTP 0.9 non si poteva fare poi molto, tant’è che ancora oggi alcuni web server come Apache e Nginx supportano e implementano l’HTTP 0.9.

Di questa prima bozza di protocollo, in realtà, era l’idea di basare tutto su una struttura client-server e su un sistema di richiesta e risposta con un protocollo ASCII che venisse eseguito sul TCP/IP ad aver dato fiamma ai fuochi di artificio di Internet.

Il protocollo HTTP negli anni fra il 1991 e il 1995

Il vero boom del Web e del protocollo HTTP si è avuto a cavallo degli anni 1991 e 1995, ma lo stesso periodo segna anche un passo della storia dell’HTTP problematico.

Il protocollo HTTP sembrava avere un nuovo inizio quando un gruppo della National Center of Supercomputing Applications (NCSA) decide di implementare una propria versione della bozza HTTP proposta da Berner-Lee.

Con questa decisione, il team dà l’avvio anche al progetto del primo browser che avrebbe aiutato gli utenti a lavorare con i server dai client. Il primo browser prendeva il nome di NCSA Mosaic.

Uno dei programmatori del team, Marc Andreessen, insieme a Jim Clark, decisero di fondare la Mosaic Communications, che da lì a poco sarebbe diventata Netscape Communications.

Nel dicembre 1994, il mercato IT conobbe il primo browser chiamato Netscape Navigator 1.0, morto agli inizi del 2008 sotto il peso della concorrenza con Microsoft Internet Explorer, anche se parte della sua gloria rivive nel browser Firefox.

Da quel momento, si capì immediatamente che il World Wide Web e il protocollo HTTP sarebbero stati molto più di un semplice progetto accademico.

Nello stesso anno, a Ginevra, si tenne la prima conferenza per il World Wide Web che portò alla creazione del W3C o World Wide Web Consortium, che aveva il compito di guidare lo sviluppo del linguaggio HTML con cui il protocollo HTTP doveva lavorare.

Nel frattempo, tanto il gruppo NCSA, quando l’appena nato HTTP Working Group (HTTP-WG) si affrettarono ad apportare i dovuti miglioramenti al protocollo HTTP.

La lista delle funzionalità che dovevano essere implementate rispetto all’HTTP 0.9 non era per nulla piccola, ma l’obiettivo principale era quello di superare le limitazioni del protocollo di Berner-Lee.

Si voleva andare ben oltre la gestione dei documenti ipertestuali con le referenze, abilitando funzionalità inerenti ai metadata, alle negoziazioni sui contenuti e molto altro ancora.

La nascente comunità del Web rispose a queste necessità producendo una pletora di server HTTP sperimentali e i relativi client per verificarne l’effettiva adozione da parte degli utenti.

Il protocollo HTTP 1.0 e le sue limitazioni

Nel maggio 1996, il gruppo HTTP-WG pubblicò l’RFC 1945, il documento che dette vita al protocollo HTTP vero e proprio, marchiato 1.0.

L’HTTP 1.0 fu rilasciato con documentazione RFC in modo informale, per cui non può essere considerato uno standard Internet.

Del protocollo 0.9 rimaneva comunque la peculiarità che la connessione fra client e server venisse chiusa dopo ogni richiesta, ma la versione 1.0 permetteva che le richieste dei client fossero multiple e che gli oggetti della risposta non fossero limitati ai soli file ipertestuali, permettendo così la gestione di file testuali, immagini o altri tipi di contenuti. Questa trasformazione era stata applicata prendendo in prestito i concetti e i costrutti degli header dello standard MIME pensato per la gestione degli allegati nei servizi di posta elettronica.

Nonostante si potessero gestire altri formati, il nome non cambiò, anche se l’HTTP era già sulla via per diventare un protocollo di trasporto hypermedia, in quanto, oltre alla negoziazione sui tipi media gestibili, l’RFC documentò un discreto numero di opportunità implementative, come la codifica di caratteri, la scelta dei set di caratteri da supportare, le autorizzazioni, il caching, i comportamenti proxy e molto altro ancora.

Nella seconda metà degli anni ’90, la versione 1.0 del protocollo HTTP risultava ampiamente adottata e negli stessi anni si assistette all’esplosione del Web.

Nel 1998, il traffico HTTP era il più fiorente sulla rete Internet e la popolarità del protocollo fu tale che le aziende provider lavoravano senza sosta nel setup di nuovo hardware capace di gestire il carico crescente delle richieste dei browser degli utenti.

Ben presto, si capì che la maggior parte di questo traffico era causato da una delle limitazioni del protocollo HTTP 1.0, ossia la chiusura della connessione e la gestione di una sola richiesta del client.

Questa caratteristica ereditata dalla versione 0.9 del protocollo HTTP, insieme a una generale mancanza di supporto per il miglioramento delle prestazioni di caching e dei servizi proxy, ha fatto sì che molti utenti Web diventassero frustrati di fronte all’inefficienza del protocollo, sempre più sottoposto a un carico per cui non era stato inizialmente progettato.

L’avvento della versione HTTP 1.1

La frustrazione degli utenti era tale che all’epoca si era diffusa la dicitura World Wide Wait, per indicare la lentezza con cui il Web rispondeva alle esigenze degli utenti.

Il gruppo HTTP-WG, a fronte di queste problematiche, decise di continuare a migliorare il protocollo. Così nel 1997, venne rilasciata la prima bozza del protocollo HTTP 1.1 con il documento RFC 2068.

Questo venne successivamente revisionato, approvato e pubblicato come RFC 2616 nel giugno del 1999, ufficializzando la versione HTTP 1.1 e dichiarandone la retrocompatibilità con i protocolli precedenti (1.0 e 0.9). Questo documento venne accompagnato poi dal RFC 2017 che definiva i problemi di sicurezza e autenticazione del protocollo HTTP.

La versione 1.1 introduceva notevoli cambiamenti rispetto alla versione 1.0 del protocollo HTTP, ossia:

  • supporto ai nome host multipli: in HTTP 1.0, non c’era un modo di specificare il nome host del server a cui il client volesse connettersi. Di conseguenza, il server Web doveva essere associato a un particolare indirizzo IP e poteva supporta un solo nome a dominio. Questo non solo si è rivelata una scelta inefficiente, ma ha portato addirittura all’esaurimento degli indirizzi IP disponibili negli anni ‘90, perché ogni nuovo server Web on-line necessitava di un nuovo indirizzo IP. La versione HTTP 1.1 permette di specificare il nome host e consente di gestire le richieste di decine o addirittura centinaia di diversi host virtuali attestati su un solo un server Web;
  • connessioni persistenti: il protocollo HTTP 1.1 consente a un client di inviare più richieste indirizzate a un medesimo server in una singola sessione TCP. Questo migliora notevolmente le prestazioni;
  • selezione parziale della risorsa: con l’HTTP 1.1, un client può richiedere solo una parte di un documento, riducendo il carico sul server e consentendo di risparmiare sulla banda di trasferimento;
  • supporto a servizi caching e proxy migliori: HTTP 1.1 include diverse opportunità di caching e proxy più efficienti ed efficace di quanto non fossero su HTTP 1.0, migliorando non solo le performance, ma anche la sicurezza;
  • maggiore sicurezza: http 1.1 definisce i metodi di autenticazione ed è generalmente più sicuro del suo antenato.

Oltre a questi miglioramenti macroscopici, in realtà il protocollo HTTP 1.1 introduce davvero un’infinità di migliorie, che lo rendono il più performante protocollo Web mai esistito.

Dall’evoluzione dell’HTTP verso la versione 1.1 nascono i servizi di cui gli utenti moderni del Web usufruiscono, da quelli multimediali a quelli nel cloud.

Queste nuove applicazioni pongono nuove sfide all’infrastruttura Internet che, infatti, mira a migliorare nelle connessioni, nei servizi di base come i DNS, ma, di nuovo anche nel protocollo HTTP.

Non a caso, di recente è stata rilasciata la bozza del protocollo HTTP 2.0, ma di questo si parlerà nel prossimo appuntamento.

 

ArubaQuesto articolo è offerto da Aruba.it. Aruba gestisce una propria rete di Data Center a livello Europeo ed è leader nell’erogazione di servizi di hosting condiviso in Italia con oltre 1 milione di clienti attivi. L’offerta di hosting condiviso include diverse soluzioni per il singolo professionista o l’azienda, verifica la migliore per te.  Aruba S.p.A., fondata nel 1994, è la prima società in Italia per i servizi di web hosting, e-mail, PEC e registrazione domini, la società gestisce oltre 2 milioni di clienti. In aggiunta ai servizi di web hosting, Aruba fornisce anche tutti una serie di servizi come server dedicati, housing e colocation o servizi managed. Aruba propone anche tutte le soluzioni nell’ambito dell’e-Security, come la firma digitale, la PEC e la conservazione sostitutiva.

 

Tutorial

Vuoi approfondire degli argomenti specifici? Segui i miei tutorial, per dubbi o domande contattami.

Vai ai tutorial

Flickr

Guarda le mie foto su Flickr. Hai bisogno di foto particolari? Vuoi imparare a fotografare? Contattami
flickr_logo

Servizi Online

Vuoi predisporre il tuo sito web personalizzato? Hai bisogno di aiuto o consulenza?

Acquista i servizi online

Contattami

Per approfondimenti o informazioni su corsi di formazione o lavori contattami.

Richiedi uno scambio link con il mio sito.