Hosting: storia del protocollo http

13
Dall’hosting al cloud computing: storia del protocollo HTTP

Transcript of Hosting: storia del protocollo http

Dall’hosting al cloud computing: storia del protocollo HTTP

Il protocollo HTTP:

dall’idea di un ricercatore del CERN

ai giorni nostri, in cui velocità,

performance e multimedialità

impongono le evoluzioni del web.

#e-Commerce

Contenuti a cura di HostingTalk

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.

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,

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.

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.

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 e si chiudesse la connessione.

Questa primissima versione del protocollo HTTP, è passata alla storia

targata come HTTP 0.9, ma mai divenuta, in realtà,

un vero e proprio formato standard come da RFC.

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ì 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.

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

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.

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.

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:

• 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, perché ogni nuovo server Web online necessitava di un nuovo indirizzo IP.

La versione HTTP 1.1 permette di specificare il nome host

e consente di gestire le richieste di 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.

Dall’evoluzione dell’HTTP verso la versione 1.1 nascono

i servizi di cui gli utenti moderni del Web usufruiscono.

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.