# World Wide Web

Il World Wide Web (termine in lingua inglese traducibile in italiano come "rete di ampiezza mondiale" o "rete mondiale"), abbreviato web, WWW o W3, è uno dei principali servizi di Internet, che permette di navigare e usufruire di un insieme molto vasto di contenuti, multimediali e non, interrelati tramite collegamenti ipertestuali (link), e di fruire di ulteriori servizi accessibili a tutti o ad una parte selezionata degli utenti di Internet (mediante autenticazione). Questa facile reperibilità di informazioni è resa possibile, oltre che dai protocolli di rete, anche dalla presenza, diffusione, facilità d'uso ed efficienza dei motori di ricerca e dei web browser in un modello di architettura di rete definito client-server.

## Storia
### L'ideazione e la nascita

La prima proposta di un sistema ipertestuale, cioè di un testo con rimandi interni ad altri testi, si può far risalire agli studi di Vannevar Bush, poi pubblicati nell'articolo As We May Think (in italiano "Come potremmo pensare") del 1945. Il concetto di ipertesto fu introdotto nel 1965 da Ted Nelson.
La data di nascita del World Wide Web viene comunemente indicata nel 6 agosto 1991, giorno in cui l'informatico inglese Tim Berners-Lee pubblicò il primo sito web. L'idea del World Wide Web era nata due anni prima, nel 1989, presso il CERN (Conseil Européen pour la Recherche Nucléaire) di Ginevra, il più importante laboratorio di fisica europeo. Il ricercatore inglese fu colpito da come alcuni colleghi italiani usavano trasmettere informazioni tramite linea telefonica da un piano all'altro dell'istituto visualizzando informazioni tramite video. Il 20 marzo 1989 Tim Berners-Lee presentò infatti al proprio supervisore il documento Information Management: a Proposal, una cui copia è esposta presso il CERN, che fu valutato «vago ma interessante».
Alla sua base vi era il progetto dello stesso Berners-Lee e di un suo collega, il belga Robert Cailliau, volto ad elaborare un software per la condivisione di documentazione scientifica in formato elettronico indipendentemente dalla piattaforma informatica utilizzata, con il fine di migliorare la comunicazione, e quindi la cooperazione, tra i ricercatori dell'istituto. A lato della creazione del software iniziò anche la definizione di standard e protocolli per scambiare documenti su reti di calcolatori: il linguaggio HTML e il protocollo di rete HTTP. La proprietà intellettuale del progetto apparteneva al CERN, di cui Berners-Lee era dipendente. L'informatico inglese dichiarò di non aver mai fatto nulla per brevettare la tecnologia perché desiderava fin dall'inizio che il web forse accessibile da chiunque. Del resto, anche il CERN guidato da Fabiola Gianotti utilizza la brevettazione in pochissimi casi, preferendo porre le sue scoperte a servizio del progresso della scienza.
Nel mese di dicembre 1990 furono completate le prime versioni dei software per il server. Berners-Lee realizzò anche il primo browser. Il giorno 20 apparve il primo sito, che descriveva lo stesso progetto WWW. Il sito era visibile solo ai dipendenti e collaboratori del CERN. A partire dal 6 agosto 1991, invece, Berners-Lee cominciò ad annunciare pubblicamente su diversi newsgroup l'esistenza del progetto WWW e la disponibilità del software. Occorsero 17 giorni perché la pagina venisse visitata: il primo utente esterno al centro di ricerca la raggiunse il 23 agosto successivo.
Dopo due anni in cui era stato usato solo dalla comunità scientifica, il 30 aprile 1993 il CERN decise di mettere il WWW a disposizione di tutti rilasciandone il codice sorgente in pubblico dominio. Negli anni successivi la nuova tecnologia conobbe un veloce e ampio successo, in virtù della possibilità offerta a chiunque di creare pagine web senza software specifici (era ed è sufficiente un editor di testo), dell'efficienza del servizio e, non ultima, della sua semplicità complessiva. Con il successo del Web ha inizio l'inarrestabile crescita e diffusione di Internet degli anni 2000-2010, nonché la cosiddetta "era del Web".
Il primo sito web italiano messo on line fu quello del «Centro di ricerca, sviluppo e studi superiori in Sardegna» (CRS4). Il sito, crs4.it, fu pubblicato nella primavera del 1993 ed è tuttora online (ovviamente nella versione storica).

### Dal Web statico ai Web service

Gli standard e i protocolli che facevano funzionare il Web supportavano inizialmente la sola gestione di pagine HTML "statiche", vale a dire file ipertestuali (preparati precedentemente) visualizzabili e, soprattutto, navigabili utilizzando opportune applicazioni (browser web). Per superare le limitazioni del progetto iniziale, furono subito definiti strumenti capaci di generare pagine HTML dinamiche (ad es. utilizzando dati estratti da un database). La prima soluzione di questo tipo furono le CGI (Common Gateway Interface). Attraverso una CGI è possibile richiedere ad un web server di invocare un'applicazione esterna e presentare il risultato come una qualsiasi pagina HTML. Questa soluzione, sebbene molto semplice da realizzare, presenta numerose limitazioni di progetto (l'applicativo esterno viene eseguito ad ogni richiesta utente e non è prevista alcuna ottimizzazione, non vi è alcuna gestione dello stato della sessione).
Per dare al web una maggiore interattività e dinamicità sono state perseguite due strade. Da un lato sono state aumentate le funzionalità dei browser attraverso un'evoluzione del linguaggio HTML e la possibilità d'interpretazione di linguaggi di scripting (come il JavaScript). Dall'altro, si è migliorata la qualità di elaborazione dei server attraverso una nuova generazione di linguaggi integrati con il web server (come JSP, PHP, ASP, etc.), trasformando pertanto i web server negli attuali application server.
La diffusione di queste soluzioni ha consentito di avviare l'utilizzo del web come piattaforma applicativa che oggi trova la sua massima espressione nei Web service, alla cui realizzazione e diffusione ha lavorato l'intera industria mondiale del software per la gestione d'azienda, dai grandi nomi commerciali (come SAP e Oracle) fino alle comunità Open Source. L'utilizzo dei web-service all'interno dell'architettura di integrazione SOA permette oggi anche alle piccole imprese di gestire senza grandi sforzi i propri processi aziendali.
Scopo dei Web service è di limitare il più possibile le attività di implementazione, consentendo di accedere a servizi software resi disponibili in rete, assemblarli secondo le proprie necessità e pagarli soltanto per il loro utilizzo effettivo, metodologia individuata nella terminologia anglosassone come pay per use, on demand software, just in time software, on tap software, etc.
I web-service e il loro successo hanno quindi un legame strutturale e intrinseco con i processi aziendali che devono supportare nell'ambito di una nuova organizzazione basata sui processi.

### Dal Web statico al Web semantico

Nonostante tutte queste evoluzioni, il web rimane una gigantesca biblioteca di pagine HTML on-line. Però, se da un lato lo standard HTML con la sua semplicità ha contribuito all'affermazione del web, dall'altro ha la grossa limitazione di occuparsi solo della formattazione dei documenti, tralasciando la struttura e il significato del contenuto.
Questo pone notevoli difficoltà nel reperimento e riutilizzo delle informazioni. Per rendersi conto di questo è sufficiente eseguire una ricerca utilizzando uno dei molti motori disponibili in rete e ci si accorgerà che, delle migliaia di documenti risultanti dalla query, spesso solo una piccola percentuale è d'interesse per la ricerca che s'intendeva fare. Ad esempio, per un qualsiasi motore di ricerca, non esiste alcuna differenza fra il termine Rossi nel contesto Il Sig. Rossi ed il termine rossi nel contesto capelli rossi, rendendo la ricerca molto difficile.
La risposta a questo problema è venuta, ancora una volta, dal fisico inglese Tim Berners-Lee, che, abbandonato il CERN, ha fondato il consorzio W3C che ha assunto il ruolo di governo nello sviluppo di standard e protocolli legati al web. Egli nel 1998 ha definito lo standard XML (eXtensible Markup Language), un metalinguaggio derivante dall'SGML, che consente la creazione di nuovi linguaggi di marcatura (ad es. lo stesso HTML è stato ridefinito in XML come XHTML). Sua caratteristica innovativa è la possibilità di aggiungere informazioni semantiche sui contenuti attraverso la definizione di opportuni tag.
I principali obiettivi di XML, dichiarati nella prima specifica ufficiale (ottobre 1998), sono pochi ed espliciti: utilizzo del linguaggio su Internet, facilità di creazione dei documenti, supporto di più applicazioni, chiarezza e comprensibilità. Con queste semplici caratteristiche l'XML fornisce un modo comune di rappresentare i dati, cosicché i programmi software siano in grado di eseguire meglio ricerche, visualizzare e manipolare informazioni nascoste nell'oscurità contestuale.
È per questo che, nonostante la sua giovane età, l'XML è alla base di tutte le nuove specifiche tecnologiche distribuite dal W3C ed è stato adottato come standard di rappresentazione dati da tutta l'industria informatica (dai file di configurazione delle applicazioni alla definizione di formati di interscambio dei dati)., riscuotendo un particolare successo nella comunicazione con i motori di ricerca, grazie alla semplificazione della scansione dei metadati.
Le specifiche XML hanno però una lacuna molto importante: non definiscono alcun meccanismo univoco e condiviso per specificare relazioni tra informazioni espresse sul web per una loro elaborazione automatica (ad es. più documenti che parlano dello stesso argomento, persona, organizzazione, oggetto), rendendo molto difficile la condivisione delle informazioni.
Anche in questo caso la soluzione al problema è venuta dal W3C di Berners-Lee, attraverso la formalizzazione del web semantico. Il W3C considera l'ideale evoluzione del web dal machine-representable al machine-understandable. L'idea è di generare documenti che possano non solo essere letti e apprezzati da esseri umani, ma anche accessibili e interpretabili da agenti automatici per la ricerca di contenuti.
A tale scopo sono stati definiti alcuni linguaggi, quali Resource Description Framework (RDF) e Web Ontology Language (OWL), entrambi basati su XML, che consentono di esprimere le relazioni tra le informazioni rifacendosi alla logica dei predicati mutuata dall'intelligenza artificiale. Questi standard sono già disponibili, ma continuano ad essere ulteriormente sviluppati insieme a formalismi e strumenti per dotare il web di capacità di inferenza.
Quello appena esposto è un processo solo apparentemente tecnico, ma ben visibile nella sua portata, che ha come obiettivo l'approdo all'intelligenza condivisa del web che promette, a breve, l'uso più efficiente dei siti internet e, a più lungo termine, un'autentica trasformazione nella natura del software e dei servizi.
Tanto interesse per queste tecnologie è da ravvisare nel fatto che tutti (utenti, produttori di software e di servizi piccoli e grandi) hanno da avvantaggiarsi dalla diffusione piena di questi standard. La formazione nel corpo del web di una vasta rete "semantica" è, infatti, la condizione chiave per il decollo di un nuovo modo di intendere ed usare il web.

## Descrizione
### La differenza tra il Web e Internet

Il Web e Internet sono due concetti diversi, seppur spesso confusi. Sintetizzando e semplificando, si può dire che Internet è una determinata rete di computer (qui "computer" è usato in senso specialistico quindi andando ben oltre a ciò che è ritenuto "computer" dalla massa degli utilizzatori di tecnologia informatica) quindi è una struttura. Invece, il Web rappresenta uno specifico servizio (uno dei tanti impiegabili tramite Internet) e, in dettaglio, è il servizio rappresentato da contenuti e informazioni fruibili mediante un browser su indirizzo http o applicazioni web. Il Web si appoggia a Internet.

### Caratteristiche

Caratteristica principale della rete Web è che i nodi che la compongono sono tra loro collegati tramite i cosiddetti link (collegamenti ipertestuali), formando un enorme ipertesto, e i suoi servizi possono essere resi disponibili dagli stessi utenti di Internet.
Per quanto riguarda i contenuti, quindi, il Web possiede la straordinaria peculiarità di offrire a chiunque la possibilità di diventare editore e, con una spesa esigua, di raggiungere un pubblico potenzialmente vastissimo distribuito in tutto il mondo: gli utenti di Internet nel 2008 hanno superato il miliardo e cinquecento milioni, quasi un quarto della popolazione mondiale.
Il Web è stato inizialmente implementato da Tim Berners-Lee mentre era ricercatore al CERN, sulla base di sue idee e di un suo collega, Robert Cailliau, e gli standard su cui è basato, in continua evoluzione, sono mantenuti dal World Wide Web Consortium (W3C).
Il Web è uno spazio elettronico e digitale di Internet destinato alla pubblicazione di contenuti multimediali (testi, immagini, audio, video, ipertesti, ipermedia, ecc.) nonché uno strumento per implementare particolari servizi come ad esempio il download di software (programmi, dati, applicazioni, videogiochi, ecc.). Tale spazio elettronico e tali servizi sono resi disponibili attraverso particolari computer di Internet chiamati server web.
Chiunque disponga di un computer, di un accesso ad Internet, degli opportuni programmi e del cosiddetto spazio web, porzione di memoria di un server web destinata alla memorizzazione di contenuti web e all'implementazione di servizi web, può, nel rispetto delle leggi vigenti nel Paese in cui risiede il server, pubblicare contenuti multimediali od offrire particolari servizi. I contenuti del Web sono infatti costantemente on-line, quindi costantemente fruibili da chiunque disponga di un computer, di un accesso a Internet, e degli opportuni programmi di "navigazione", in particolare del cosiddetto browser web, che consente, appunto, di fruire dei contenuti e dei servizi pubblicati sul Web.
I più popolari Internet service provider offrono la possibilità di pubblicare sul Web contenuti non troppo complessi senza la necessità di conoscere il linguaggio di markup del Web. Lo stesso vale anche per i blog: molti sono infatti i siti web che offrono gratuitamente la possibilità di creare un blog in modo semplice e immediato senza la necessità di avere particolari conoscenze tecniche. In caso invece di contenuti più complessi è necessario dotarsi anche di un editor web WYSIWYG se si vuole evitare, o almeno semplificare, l'apprendimento del linguaggio di markup del Web.
Non tutti i contenuti e i servizi del Web sono però disponibili a chiunque, in quanto il proprietario dello spazio web, o chi ne ha delega di utilizzo, può renderli disponibili solo a determinati utenti, gratuitamente o a pagamento, utilizzando il sistema degli account.

### Contenuti e l'organizzazione

I contenuti principali del Web sono costituiti da testo e grafica, il cui formato è codificato da un insieme ristretto di standard definito dal W3C. Tali contenuti sono quelli che tutti i browser web devono essere in grado di interpretare e rappresentare autonomamente, cioè senza software aggiuntivo.
I contenuti pubblicati sul Web possono essere però di qualunque tipo e in qualunque standard. Alcuni di questi contenuti sono pubblicati per essere fruiti attraverso il browser web e, non essendo in uno degli standard appartenenti all'insieme definito dal W3C, il browser web deve essere esteso nelle sue funzionalità al fine di poterli rappresentare. A tale scopo, il browser deve essere provvisto di opportuni plug-in, cioè estensioni del software base che ne aumentano le funzionalità, e che sono normalmente disponibili nel web. I contenuti che non sono direttamente fruibili dal browser web, devono essere utilizzati con programmi esterni al browser stesso. Ad esempio si può trattare di un file eseguibile per il sistema operativo che si sta utilizzando, o di un foglio elettronico in formato Microsoft Excel.
I contenuti del Web sono organizzati nei siti web a loro volta strutturati nelle pagine web le quali si presentano come composizioni di testo e/o grafica visualizzate sullo schermo del computer dal browser web. Le pagine web, anche appartenenti a siti diversi, sono collegate fra loro in modo non sequenziale attraverso i link (anche chiamati collegamenti), parti di testo e/o grafica di una pagina web che permettono di accedere ad un'altra pagina web, di scaricare particolari contenuti, o di accedere a particolari funzionalità, cliccandoci sopra con il mouse, creando così un ipertesto.
Tutti i siti web sono identificati dall'indirizzo web, una sequenza di caratteri univoca chiamata in termini tecnici URL che ne permette la rintracciabilità nel Web.
Non è previsto un indice aggiornato in tempo reale dei contenuti del Web, quindi nel corso degli anni sono nati ed hanno riscosso notevole successo i cosiddetti motori di ricerca, siti web da cui è possibile ricercare contenuti nel Web in modo automatico sulla base di parole chiave inserite dall'utente, e i cosiddetti portali web, siti web da cui è possibile accedere ad ampie quantità di contenuti del Web selezionati dai redattori del portale web attraverso l'utilizzo di motori di ricerca o su segnalazione dei redattori dei siti web.

### I servizi

Oltre alla pubblicazione di contenuti multimediali il Web permette di offrire servizi particolari implementabili dagli utenti stessi. I servizi implementabili sono innumerevoli, in pratica limitati solo dalla velocità della linea di telecomunicazione con cui l'utente e chi fornisce il servizio sono collegati e dalla potenza di calcolo dei loro computer. Di seguito quindi sono elencati solo quelli contraddistinti da una denominazione generica:
* download: la distribuzione di software;
* web mail: la gestione della casella di posta elettronica attraverso il Web;
* web chat: la comunicazione testuale in tempo reale tra più utenti di Internet, tramite applicazioni di instant messaging;
* streaming: la distribuzione di audio/video in tempo reale;
** web radio: la radio fruita attraverso il Web;
** web TV: la televisione fruita attraverso il Web.

## Implementazione

Il Web è implementato attraverso un insieme di standard, i principali dei quali sono i seguenti:
* HTML (e suoi derivati): il linguaggio di markup con cui sono scritte e descritte le pagine web;
* HTTP: il protocollo di rete appartenente al livello di applicazione del modello ISO/OSI su cui è basato il Web;
* URL: lo schema di identificazione, e quindi di rintracciabilità, dei contenuti e dei servizi del Web.
La peculiarità dei contenuti del Web è quella di non essere memorizzati su un unico computer ma di essere distribuiti su più computer, caratteristica da cui discende efficienza in quanto non vincolati ad una particolare localizzazione fisica. Tale peculiarità è realizzata dal protocollo di rete HTTP il quale permette di vedere i contenuti del Web come un unico insieme di contenuti anche se fisicamente risiedono su una moltitudine di computer di Internet sparsi per il pianeta.

### Funzionamento

La visione di una pagina web inizia digitandone l'URL nell'apposito campo del browser web oppure cliccando su un collegamento ipertestuale presente in una pagina web precedentemente visualizzata o in altra risorsa come ad esempio un'e-mail. Il browser web a quel punto dietro le quinte inizia una serie di messaggi di comunicazione con il web server che ospita quella pagina con lo scopo di visualizzarla sul terminale utente.
Per prima cosa la porzione di server-name dell'URL è risolta in un indirizzo IP usando il database globale e distribuito conosciuto come Domain Name System (in sigla DNS). Questo indirizzo IP è necessario per inviare e ricevere pacchetti dal server web.
A questo punto il browser richiede le informazioni inviando una richiesta a quell'indirizzo. In caso di una tipica pagina web, il testo HTML di una pagina è richiesto per primo ed immediatamente interpretato dal browser web che, successivamente, richiede eventuali immagini o file che serviranno per formare la pagina definitiva.
Una volta ricevuti i file richiesti dal web server, il browser formatta la pagina sullo schermo seguendo le specifiche HTML, CSS, o di altri linguaggi web. Ogni immagine e le altre risorse sono incorporate per produrre la pagina web che l'utente vedrà.

### Accessibilità e usabilità

Cruciali nell'evoluzione del Web sono diventati i concetti, di accessibilità e usabilità a favore di ogni tipologia di utente, relativi alla progettazione, organizzazione e implementazione dei contenuti secondo specifici requisiti, in comune in generale con le linee evolutive di tutti i prodotti hardware e software in ambito ICT.