Estratto del documento

Capitolo 1 – Introduzione al WWW

Sommario

  • Introduzione ........................................................................................................................................................... 2
  • Evoluzione del Web ................................................................................................................................................. 3
  • Web statico (1.0) ................................................................................................................................................. 3
  • Web dinamico (1.5) ............................................................................................................................................. 3
  • Web 2.0 .............................................................................................................................................................. 4
  • Web Semantico ................................................................................................................................................... 4
  • Web 2.5 e 3.0 ...................................................................................................................................................... 5
  • Fondamenta del Web: Internet e i protocolli ........................................................................................................... 5
  • Rete aperta ......................................................................................................................................................... 5
  • Topologia distribuita e decentralizzata ................................................................................................................ 5
  • Paradigma Client-Server ...................................................................................................................................... 6
  • World Wide Web................................................................................................................................................. 6

Introduzione

Il Web può essere descritto come un servizio Internet per la condivisione e l’accesso di conoscenza e risorse interconnesse tra loro in modo uniforme (utilizzando dei meccanismi e protocolli condivisi) ed universale (la connessione può avvenire da qualsiasi sistema presente in rete).

Il fatto che il Web sia un servizio Internet non significa che i due concetti coincidano, infatti Internet è una grande rete di calcolatori, mentre il Web è una rete di risorse; oltre al Web, inizialmente Internet offriva altre tipologie di servizi come FTP, un servizio per il trasferimento di file e documenti tramite Internet: lo svantaggio di questa prima tipologia di servizi è che una volta terminato il trasferimento del contenuto l'interazione tra i sistemi in comunicazione terminava.

L’idea che ha permesso di superare il limite della semplice condivisione dei file è quella dell’ipertesto: l’ipertesto è un documento non sequenziale che si ramifica e dà possibilità di scegliere al lettore in che ordine consultarlo, infatti è l’utente che crea il documento ipertestuale; questo concetto di non sequenzialità permette di creare una rete estesa di documenti.

La prima versione del Web era costituita da una raccolta molto vasta di documenti accessibili mediante URL (Universal Resource Locator), il quale indicava la posizione univoca della risorsa, ma in generale gli URL erano utilizzati per creare riferimenti incrociati detti collegamenti ipertestuali.

Il concetto iniziale era quello di creare una rete in cui tutte le risorse fossero collegate tra loro: l’estensione della proposta iniziale a livello mondiale avvenne implementando tutti i vari protocolli di comunicazione che ancora oggi vengono utilizzati.

Web server: computer che offre un servizio tramite cui è possibile il collegamento dall’esterno per la visualizzazione delle risorse offerte.

Evoluzione del Web

Web statico (1.0)

Inizialmente solo alcune istituzioni avevano risorse per poter implementare ed eseguire un sistema web server e quindi il Web era composto unicamente da insiemi di pagine statiche interconnesse fra loro che facevano riferimento, in modo gerarchico, ad una homepage.

Una prima evoluzione è avvenuta, senza modifiche della tecnologia in uso, introducendo il concetto di sito Web, un insieme di pagine statiche/dinamiche con alcune caratteristiche:

  • Aspetti di contenuto: contenuto consistente dal punto di vista tematico in grado di dare un’identità al sito;
  • Aspetti estetici: estetica uniforme per facilitare la navigazione;
  • Aspetti architetturali: informazione organizzata in modo efficace per facilitare la consultazione.

L’interazione con il Web statico era unilaterale, ovvero l’utente poteva esclusivamente visualizzare il contenuto presente nel Web server a cui si collegava; questo metodo è ancora oggi implementato per siti Web poco mutevoli.

Web dinamico (1.5)

È un’evoluzione del Web statico introdotta dall’utilizzo di applicazioni Web che permettono la creazione, la visualizzazione e l’utilizzo di contenuti dinamici.

Gli strumenti tecnologici che hanno permesso questa evoluzione sono gli script (programmi semplici che permettono la generazione di contenuti dinamici), l’interazione con database relazionali e l’uso di informazioni sull’utente grazie alle quali è possibile personalizzare l’esperienza di navigazione.

L’interazione avviene nel seguente modo:

  • L’utente richiede la pagina dinamica al Webserver;
  • Il server riconosce la richiesta e ricerca lo script da eseguire;
  • Il server esegue o interpreta lo script;
  • Lo script viene tradotto in HTML (pagina statica);
  • Il file in HTML viene inviato all’utente richiedente;
  • Il browser mostra il file ricevuto all’utente.

Grazie al Web dinamico c’è stata un’evoluzione da siti Web a Web application, cioè ad applicazioni dinamiche in cui l’utente può visualizzare i contenuti in modo interattivo e personalizzato.

Web 2.0

Il Web 2.0 rappresenta un’evoluzione prevalentemente sociale del Web in quanto ogni utente è contemporaneamente sia producer che consumer (flussi informativi non più unidirezionali), favorendo l’interazione e la partecipazione degli utenti e la condivisione delle risorse. Nonostante il Web 2.0 non costituisca un cambio tecnologico, vengono stabiliti nuovi principi tra cui usabilità, interoperabilità e comunicazione in entrambe le direzioni: questo passaggio è stato possibile grazie all’introduzione di nuovi standard (HTML5 e CSS3) e framework basati su AJAX e JavaScript.

AJAX (Asynchronous Javascript and XmlHttpRequest) in particolare ha permesso un cambio importante nel mondo delle Web app, creando un maggiore dinamismo e migliorando l’usabilità e la user experience; le richieste di risorse, utilizzando AJAX, avvengono parzialmente considerando solo una parte di pagina Web (questo avviene quando, ad esempio, una pagina Web contiene delle componenti che si aggiornano dinamicamente).

Web semantico

L’idea di Web semantico è nata considerando le seguenti problematiche:

  • Abbondanza di risorse che causa information overload e rende più arduo ricercare l’informazione di interesse;
  • Difficoltà di interpretazione da parte dei motori di ricerca dei significati associati alle risorse se non con tecniche probabilistiche.

Il Web semantico permette l’associazione delle risorse Web a un significato interpretabile dai computer che potranno, quindi, produrre informazioni in modo intelligente, cioè tutte le risorse Web diventano machine-understandable. Per definizione, il Web semantico è l’estensione del Web attuale, in cui all’informazione è associato un determinato significato in modo da facilitare la cooperazione tra computer e utenti umani.

Esempi di Web semantico sono Knowledge Graph di Google, Siri di Apple e WolframAlpha.

Web 2.5 e 3.0

Il Web 3.0 indica una serie di evoluzioni dei dati del Web semantico ed include:

  • Web of Data: tutti i collegamenti tra dati definiti dal Web semantico vengono dichiarati, cioè descritti in qualche modo da linguaggi specifici di tipo dichiarativo; in questo modo viene distinto il Deep Web (parte del Web interconnessa con il Web classico);
  • Intelligenza Artificiale: l’inserimento di questa componente permette di effettuare l’interpretazione del linguaggio naturale, predizione di interessi, ecc;
  • Ubiquità: impone che il contenuto debba essere accessibile da più dispositivi.

Il Web 3.0 può essere definito attraverso i concetti di decentralizzazione utilizzando la tecnologia blockchain che implementa caratteristiche di sicurezza, scalabilità e privacy.

Il Web 2.5 si è invece dedicato al mobile computing, necessità nata dal fatto che col tempo sempre più dispositivi mobili si sono uniti al Web; nell’ambito del Web 2.5 è importante menzionare le mobile Web apps, studiate principalmente per i dispositivi mobili e in grado di fornire esperienze utente leggere e veloci.

Fondamenta del Web: Internet e i protocolli

Il Web è nato da una infrastruttura già esistente basata sui protocolli Internet utilizzati nella rete ARPANET statunitense basata su dei principi fondamentali.

Rete aperta

  • Promozione dell’interoperabilità fra sistemi evitando le limitazioni delle reti proprietarie precedenti;
  • Promozione dell’interoperabilità tramite protocolli aperti e disponibili a chiunque;
  • Creazione dell’Internet Working Group per adattare le connessioni a reti eterogenee in modo uniforme;
  • Creazione di RFC (Requests For Comments), ovvero strumenti che permettono di proporre, aggiornare ed accettare nuovi protocolli come standard Internet.

Topologia distribuita e decentralizzata

Precedentemente esisteva una topologia centralizzata per cui tutte le comunicazioni passavano da un singolo punto di controllo che costituiva il punto di rottura dell’intera rete perché, in caso di errori, tutta la rete risultava inutilizzabile; è stata quindi introdotta la tecnologia a commutazione di pacchetto, la quale prevede che tutti i messaggi scambiati vengano suddivisi in pacchetti e instradati in base a regole definite da protocolli su cui si basano tutte le comunicazioni. Tutte le comunicazioni avvengono ancora oggi utilizzando il protocollo TCP/IP e i messaggi a livello applicativo vengono incapsulati nei livelli sottostanti per poter procedere della comunicazione e ogni livello comunica, dal lato destinatario, con il suo livello corrispondente non considerando ciò che avviene negli altri livelli.

Il livello Applicazione è il livello che fornisce interazione tra utenti e servizi Internet (FTP, SMTP, POP/IMAP, DNS, HTTP, ecc).

Il livello Trasporto si occupa di come i messaggi devono essere comunicati da un nodo all’altro; questo avviene tramite i protocolli TCP e UDP: il primo garantisce una connessione affidabile con l’obiettivo di non perdere i pacchetti che compongono il messaggio da inviare, il secondo invece è un protocollo orientato alla velocità nella comunicazione non affidabile.

Il livello Internet incapsula ulteriormente i pacchetti che verranno instradati (routing) in canali diversi per poi convergere al punto di destinazione prefissato; i protocolli utilizzati sono IP ed ICMP.

Il livello Rete si occupa di comunicare con la rete fisica sottostante utilizzando driver LAN, WAN e WLAN. Il livello Fisico si occupa della trasmissione vera e propria dei segnali.

Paradigma Client-Server

Il paradigma utilizzato dalle applicazioni TCP/IP, considerando anche il Web, è il paradigma Client-Server.

  • Client: attore che ha lo scopo di ottenere un determinato servizio; generalmente si tratta dell’utente che instaura delle connessioni per poter ricevere risorse e servizi.
  • Server: attore che fornisce servizi ai client che devono implementare una serie di operazioni come, ad esempio, gestione degli accessi, allocazione e rilascio di risorse e condivisione di dati.

La comunicazione tra i due attori che caratterizzano il paradigma parte dall’avvio del server che rimane in attesa di richieste da parte dei client e, una volta ricevute, le processano e costruiscono delle risposte da inviare al client richiedente: il paradigma di comunicazione si basa quindi su interazioni di tipo richiesta-risposta. Una volta che la connessione è avvenuta con successo ed è riconosciuta dal server, il client può procedere all’invio di comandi linea per linea mantenendo o meno lo stato in base al protocollo utilizzato (stateful o stateless).

World Wide Web

Negli anni ‘90 furono sviluppati i primi browser e i primi server capaci di poter interagire tra loro utilizzando semplici componenti che realizzano la tecnologia abilitante del Web.

  • HTML (HyperText Markup Language): linguaggio utilizzato per formattare i documenti secondo delle indicazioni semantiche e realizzare la tecnica del collegamento ipertestuale o cross-referencing utilizzando gli hyperlink secondo l’idea originale di Web;
  • URI (Universal Resource Identifier): utilizzato per poter identificare le risorse nel Web in modo univoco;
  • HTTP (HyperText Transfer Protocol): permette il trasporto dei documenti e delle risorse da chi le fornisce a chi ne fa richiesta.

Capitolo 2 – Protocolli URI e HTTPS

Sommario

  • URI – Uniform Resource Identifier ........................................................................................................................... 2
  • HTTP – HyperText Transfer Protocol ........................................................................................................................ 3
  • Componenti di sistemi HTTP-based ..................................................................................................................... 3
  • Flusso di HTTP ..................................................................................................................................................... 4
  • Caratteristiche di HTTP ........................................................................................................................................ 4
  • Versioni di HTTP .................................................................................................................................................. 4
  • Messaggi HTTP .................................................................................................................................................... 5
  • Richieste HTTP .................................................................................................................................................... 5
  • Risposte HTTP ..................................................................................................................................................... 7
  • Header HTTP ....................................................................................................................................................... 8
  • Supporto per i Content-Type ............................................................................................................................... 9
  • Content negotiation ............................................................................................................................................ 9
  • Supporto per trasferimenti chunked.................................................................................................................. 11
  • Supporto per messaggi multipart ...................................................................................................................... 11
  • Controllo della cache ......................................................................................................................................... 12
  • Freshness di una risorsa .................................................................................................................................... 13
  • Risorse revved ................................................................................................................................................... 13
  • Validazione della cache ..................................................................................................................................... 14
  • Virtual hosting ................................................................................................................................................... 14
  • Meccanismi di autenticazione ........................................................................................................................... 15
  • Connessioni in HTTP/1.1 .................................................................................................................................... 15
  • Supporto alle sessioni ........................................................................................................................................ 17
  • Connessioni sicure ................................................................................................................................................ 19
  • HTTP/2.0 ........................................................................................................................................................... 20

URI – Uniform Resource Identifier

Permette di identificare una risorsa attraverso identificatori univoci; lo schema comprende diverse componenti, con solo alcune opzionali:

  • Protocollo utilizzato nella comunicazione e che fa uso della risorsa indicata successivamente;
  • Percorso in cui si trova la risorsa;
  • Utente che eventualmente deve effettuare l’accesso ad un host (viene utilizzato il delimitatore @);
  • Host in cui è memorizzata la risorsa, a cui si può aggiungere anche la porta;
  • Query utilizzata per richiedere una risorsa che soddisfi una condizione particolare;
  • Frammento singolo di una risorsa che può essere specificato al posto della risorsa completa.

Esempio: Utilizzo dello schema HTTP per l’host a cui si aggiunge il percorso della macchina in cui è www.mywebsite.com contenuta la risorsa (/sj/test); viene aggiunta una query, quindi si estrae la risorsa particolare per cui sia soddisfatta la condi

Anteprima
Vedrai una selezione di 10 pagine su 160
Appunti Fondamenti Web Pag. 1 Appunti Fondamenti Web Pag. 2
Anteprima di 10 pagg. su 160.
Scarica il documento per vederlo tutto.
Appunti Fondamenti Web Pag. 6
Anteprima di 10 pagg. su 160.
Scarica il documento per vederlo tutto.
Appunti Fondamenti Web Pag. 11
Anteprima di 10 pagg. su 160.
Scarica il documento per vederlo tutto.
Appunti Fondamenti Web Pag. 16
Anteprima di 10 pagg. su 160.
Scarica il documento per vederlo tutto.
Appunti Fondamenti Web Pag. 21
Anteprima di 10 pagg. su 160.
Scarica il documento per vederlo tutto.
Appunti Fondamenti Web Pag. 26
Anteprima di 10 pagg. su 160.
Scarica il documento per vederlo tutto.
Appunti Fondamenti Web Pag. 31
Anteprima di 10 pagg. su 160.
Scarica il documento per vederlo tutto.
Appunti Fondamenti Web Pag. 36
Anteprima di 10 pagg. su 160.
Scarica il documento per vederlo tutto.
Appunti Fondamenti Web Pag. 41
1 su 160
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Nicocarad di informazioni apprese con la frequenza delle lezioni di Fondamenti Web e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Bari o del prof Ferrara Antonio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community