A. A. 2014-2015. Introduzione alle Reti di Calcolatori e Architettura del World Wide Web

Documenti analoghi
Reti di calcolatori. Reti di calcolatori

Applicazioni web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications)

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Protocolli applicativi: FTP

Dal protocollo IP ai livelli superiori

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Reti di Telecomunicazione Lezione 6

appunti delle lezioni Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Capitolo 16 I servizi Internet

OSOR. Applicazioni di Rete

Comunicazione nel tempo

Le Reti Informatiche

Reti di Calcolatori. una rete di calcolatori è costituita da due o più calcolatori autonomi che possono interagire tra di loro una rete permette:

Reti di Calcolatori. Vantaggi dell uso delle reti. Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito

Reti di Calcolatori. Il Livello delle Applicazioni

Reti e Internet: introduzione

Finalità delle Reti di calcolatori. Le Reti Informatiche. Una definizione di Rete di calcolatori. Hardware e Software nelle Reti

Il funzionamento delle reti

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Internet Architettura del www

Lo scenario: la definizione di Internet

InterNet: rete di reti

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Protocollo HTTP. Alessandro Sorato

Standard di comunicazione

Reti di Calcolatori. Corso di Informatica. Reti di Calcolatori. Reti di Calcolatori. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

Reti locati e reti globali. Tecnologie: Reti e Protocolli. Topologia reti. Server e client di rete. Server hardware e server software.

url uniform resource locator

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Reti di Telecomunicazione Lezione 7

Laboratorio di Informatica Corso di laurea in Lingue e Studi interculturali. AA Paola Zamperlin. Internet. Parte prima

Architetture Web Protocolli di Comunicazione

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 2

Il Protocollo HTTP e la programmazione di estensioni Web

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia

MODELLI ISO/OSI e TCP/IP

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella

Protocolli di Comunicazione

Il funzionamento delle reti

Stack protocolli TCP/IP

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Identità sulla rete protocolli di trasmissione (TCP-IP) L architettura del sistema. Dal livello A al livello B

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Ipertesto. Reti e Web. Ipertesto. Ipertesto. Ipertestualità e multimedialità

Introduzione alla rete Internet

Reti di Calcolatori. Il software

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

Introduzione alla rete Internet

Reti di Telecomunicazione Lezione 8

URI. Introduzione. Pag. 1

Architettura client-server

TCP/IP: INDIRIZZI IP SIMBOLICI

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Altro esempio di HTML

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Livello di Applicazione in Internet

Sistemi informatici in ambito radiologico

Transmission Control Protocol

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8

Informatica per la comunicazione" - lezione 9 -

Reti di Calcolatori: una LAN

Page 1. Elementi Base del Modello OSI. Il modello di riferimento ISO/OSI OSI: Open Systems Interconnection. Struttura a Livelli.

Comprendere cosa è Internet e sapere quali sono i suoi principali impieghi. 25/09/2011 prof. Antonio Santoro

Internet e Tecnologia Web

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 3 a lezione a.a. 2009/2010 Francesco Fontanella

Informatica per la comunicazione" - lezione 8 -

Reti diverse: la soluzione nativa

Introduzione alle applicazioni di rete

STRUMENTI DIGITALI PER LA COMUNICAZIONE- RETI ED INTERNET. Corso di Laurea in Scienze della Comunicazione Paola Vocca

Cos è. Protocollo TCP/IP e indirizzi IP. Cos è. Cos è

Introduzione alla rete Internet

Lezione n 1! Introduzione"

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

Internet. Internet. Internet Servizi e Protocolli applicativi. Internet. Organizzazione distribuita

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

ARP (Address Resolution Protocol)

Internet e protocollo TCP/IP

Esempi di applicazioni internet. WEB Trasferimento File Posta Elettronica Sistema dei nomi di dominio (DNS)

Internet: architettura e servizi

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Elementi di Informatica e Programmazione

Come leggere ed interpretare la letteratura scientifica e fornire al pubblico informazioni appropriate sui farmaci

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli

La rete Internet. Percorso di Preparazione agli Studi di Ingegneria. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Reti di Computer. A cura di Massimo Scolaro Mob : max@massimoscolaro.it

Internet: architettura e servizi

Internet. Introduzione alle comunicazioni tra computer

Internet e i suoi servizi. Luca Cervone (luca.cervone@unibo.it)

Internet e le reti. Navigare in rete. Un po di confusione sui termini. Internet WWW Web Servizi i Internet Sito Internet. Sinonimi?!?

Architetture Applicative Il Web

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA

Elementi di Informatica e Programmazione

Reti di calcolatori ed indirizzi IP

Transcript:

Corso di Laurea Magistrale in Ingegneria Gestionale Corso di Sistemi Informativi: II Modulo A. A. 2014-2015 Introduzione alle Reti di Calcolatori e Architettura del World Wide Web

Indice Reti di calcolatori Il modello ISO/OSI Protocollo TCP/IP Architettura del World Wide Web Elementi di base del World Wide Web: URI, URL, URN, IRI, Protocollo HTTP, Unicode Il World Wide Web Consortium (W3C)

Reti di calcolatori Le reti di calcolatori collegano elaboratori, detti nodi della rete (hosts), situati ad una certa distanza fra di loro, fornendo a ciascuno di essi vari servizi di rete, ossia funzionalità disponibili a tutti i calcolatori della rete stessa Ogni rete è basata su di una certa topologia. Essa descrive le modalità con le quali si scelgono i calcolatori da connettere direttamente tra loro Infatti, in una rete avrò: Calcolatori connessi direttamente Calcolatori che, per poter comunicare, devono far passare i messaggi attraverso altri elaboratori

Reti geografiche e locali LAN (Local Area Network): rete locale Distanza compresa tra un metro e un chilometro (edificio, campus) Velocità elevatissima MAN (Metropolitan Area Network): rete metropolitana Distanza fino alla decina di chilometri (area cittadina) Velocità elevata WAN (Wide Area Network): rete geografica Collega sistemi a qualsiasi distanza Internet è la più diffusa WAN I tre tipi sono organizzati gerarchicamente: le LAN sono collegate da MAN, collegate dalle WAN

Topologia (1) Stella Anello Nodo centrale(apparato di rete specializzato negli scambi) che inoltra i messaggi + Semplice + Più nodi possono comunicare contemporaneamente - Collo di bottiglia (nodo centrale ) - Vulnerabile ai guasti del nodo centrale e della rete (unico collegamento) Nessun nodo centrale: treni di messaggi + Nessun collo di bottiglia + Più nodi possono comunicare contemporaneamente + Meno vulnerabile ai guasti della rete e di altri nodi (inversione direzione, a meno di doppio guasto) - Più complesso - Più nodi da attraversare

Topologia (2) Bus Irregolare Nessun nodo centrale + Semplice + Nessun nodo da attraversare - Vulnerabile ai guasti della rete - Solo due nodi alla volta possono comunicare Nessuna topologia precisa + Resistente ai guasti (se routing dinamico) + Più nodi possono comunicare contemporaneamente - Complesso - Più nodi da attraversare

Topologia (3) Le topologie a stella, anello e bus sono usate soprattutto nell ambito delle reti locali (LAN Local Area Network) La topologia irregolare è molto diffusa tra le reti geografiche (WAN Wide Area Network)

I messaggi Le informazioni scambiate tra i nodi sono strutturate in messaggi Ogni messaggio contiene i dati da comunicare ed un certo insieme di informazioni di controllo Spesso la quantità di dati (byte) che è possibile inserire in un messaggio è fissa. Se un nodo deve inviarne un numero maggiore, è necessario utilizzare più messaggi

Struttura dei messaggi La struttura dei messaggi dipende dallo standard utilizzato ma è possibile dare una descrizione generale: Fine messaggio Caratteri di controllo Dati da inviare Destinatario Mittente Inizio messaggio Sequenza di controllo Parte utile del messaggio Introduzione

Routing dei messaggi Se due nodi non sono connessi direttamente, il messaggio dovrà attraversare nodi intermedi I nodi intermedi dovranno ricevere il messaggio e rispedirlo verso un nodo a loro connesso e più vicino alla destinazione (routing o instradamento) Il caso più complesso è quello di una rete con topologia irregolare A X Y Se A vuole comunicare con B, deve passare attraverso X, oppure attraverso X e Y Il nodo X deve decidere quale strada B usare (routing statico o dinamico)

Protocolli di rete Un protocollo definisce il formato e l'ordine dei messaggi scambiati tra due o più entità in comunicazione, così come le azioni intraprese in fase di trasmissione e/o di ricezione di un messaggio o di un altro evento Un protocollo stabilisce le regole di comunicazione che debbono essere seguite da due interlocutori A: Chiamata per B B: Pronto, chi parla? A: Sono A, sei pronto a ricevere dati? B: Sì A: Ecco i dati bla bla bla fine dei dati B: Dati ricevuti con successo A: Ciao B: Ciao Il protocollo stabilisce cosa fare in tutte le situazioni che possono verificarsi (errori, ecc.) Deve essere conosciuto dai due interlocutori (quindi, deve essere uno standard)

Lo stack ISO-OSI (1) Lo standard ISO-OSI (Open System Interconnect) include un insieme di protocolli che definiscono, a vari livelli di dettaglio, le regole di comunicazione E spesso chiamato stack (pila) ISO-OSI 7. Livello applicazione Servizi telematici(trasferimento file, e-mail, ) 6. Livello presentazione Conversione formati (01/12/02 12/01/02) 5. Livello sessione Apertura e chiusura dialogo (Chiamata per B...Ciao) 4. Livello trasporto Segmentazione dati in più messaggi 3. Livello rete Routing (instradamento) 2. Livello collegamento dati Controllo correttezza messaggi (rispedisci se errori) 1. Livello fisico Specifiche Hw/Sw dipositivi fisici usati per connettere i nodi (Ethernet, cavo coassiale, )

Lo stack ISO-OSI (2) Ogni livello definisce dei protocolli che gestiscono, a quel livello di dettaglio, la comunicazione Ciascun livello rappresenta una macchina astratta Ogni livello (macchina astratta) dello stack assume di parlare con il medesimo livello (macchina astratta) dell altro nodo ed è completamente ignaro di ciò che succede sotto di lui I messaggi di ogni livello sono incapsulati nei messaggi di livello sottostante senza alcuna manipolazione E un modello di riferimento, i protocolli reali spesso implementano solo parzialmente lo stack

Lo stack ISO-OSI (3) L7 Invia file pippo.txt Ricevi file L7 L6 Converti file Converti file L6 L5 Apri dialogo Chiudi dialogo L5 L4 Segmenta file Ricomponi file L4 L3 Invia msg 1, msg 2, Ricevi msg 1, msg 2, L3 L2 Aggiungi dati controllo Verifica messaggi L2 L1 Connessione fisica Connessione fisica L1

Lo stack ISO-OSI (4) Il flusso dei dati, in realtà, scende lungo lo stack del nodo mittente e risale lungo lo stack del nodo destinatario Durante la trasmissione: Ogni livello aggiunge informazioni o modifica quelle provenienti dal livello superiore e le passa al livello inferiore Durante la ricezione: Ogni livello estrae le informazioni di suo interesse e passa quelle rimanenti al livello superiore

Lo stack ISO-OSI (5) Per es. invio file pippo.txt Mittente L7 L6 L5 L4 L3 L2 L1 Rete fisica L7 L6 L5 L4 L3 L2 L1 Destinatario

Internet Breve storia Un insieme di tecnologie, standard ed applicazioni in grado di connettere tra loro reti disomogenee (basate cioè su standard diversi), creando una sorta di rete di reti, ovvero una inter-rete, ovvero una Inter-Net Nasce alla fine degli anni 60 negli USA per scopi militari (ARPANET) Negli anni 70 nasce il protocollo fondamentale di Internet: TCP/IP Negli anni 80 è diffusa soprattutto in ambito accademico All inizio degli anni 90 nasce il World Wide Web In poche parole Internet è una rete mondiale di reti di computer ad accesso pubblico, attualmente rappresentante il principale mezzo di comunicazione di massa, che offre all'utente una vasta serie di contenuti potenzialmente informativi e servizi

Il protocollo di connessione TCP/IP TCP/IP: insieme di protocolli usati per connettere calcolatori e reti Il termine è una combinazione di due dei protocolli più importanti: TCP (Transmission Control Protocol): corrisponde, più o meno, al livello trasporto ISO-OSI IP (Internet Protocol): corrisponde, più o meno, con il livello rete ISO-OSI

TCP/IP e stack ISO OSI Application TCP/UDP IP Network Interface Application Presentation Session Transport Network Data Link Physical Media Internet Modello ISO OSI

Livelli di rete e trasporto Rete: IP individua il nodo di destinazione ed effettua il routing dinamico di ogni pacchetto da un nodo sorgente a un nodo destinazione, collegando anche reti diverse tra loro, senza garantire la corretta consegna(è connectionless) Trasporto: al di sopra di IP crea una connessione end to end (canale virtuale nonostante la divisione in pacchetti) tra applicazione sorgente e destinazione TCP controlla la corretta trasmissione dei dati sotto forma di pacchetti, occupandosi dell eventuale ritrasmissione di pacchetti persi UDP(USER DATA PROTOCOL): non garantisce la corretta trasmissione dei pacchetti perché non usa i pesanti meccanismi di controllo del TCP: meno affidabile, più efficiente

Livello Application Protocolli Applicativi, poggiano sul trasporto e permettono il funzionamento delle diverse applicazioni su Internet. Esempi: HTTP su TCP, permette il funzionamento del web SMTP su TCP, permette l invio di posta elettronica POP3 su TCP, permette la ricezione di posta elettronica RTP su UDP, permette la trasmissione della TV su Internet

Nomi e Domini: il DNS A ogni computer su Internet (indirizzo IP) può essere assegnato anche un nome simbolico: nome di dominio Indirizzo utente: nome simbolico dell utente, simbolo @, nome del dominio dell utente (es. s.colucci@poliba.it) Dominio: Rappresenta il nodo su cui l utente stesso risiede La maggior parte dei domini ha tre livelli: etichette rilasciate da organismi Gerarchia di livelli nel dominio Primo livello:.it,.com,.org,.eu,.(creati da ICANN e delegati ai singoli enti nazionali, che lo danno a vari mantainer) Secondo livello: poliba., unimi., polimi., uniba., (creati da enti nazionali del primo livello) Terzo livello: www., java., mail.,.(gestiti dall azienda che ha comprato il dominio) Esempio: in www.poliba.it il Poliba ha acquistato il dominio dal NIC(Network Information Center) di Pisa (gestisce il.it) e gestisce il computer www nella propria rete I domini devono essere trasformati in indirizzi numerici: DNS (Domain Name Server) come protocollo applicativo poggiato su UDP e progettato secondo il paradigma client server: secondo richiesta al DNS più vicino

Il World Wide Web (WWW) 1989: Tim Berners-Lee al CERN inventa il WWW Idea: ipertesti (Collezione di documenti connessi da collegamenti ipertestuali hyperlink) attraverso Internet Il World Wide Web (WWW) è una applicazione che usa la rete Internet. Si basa su tre tecnologie fondamentali: URL (Uniform Resource Locator): meccanismo universale di identificazione e indirizzamento delle risorse nel WWW HTTP (HyperText Transfer Protocol): protocollo client-server di alto livello per trasferire documenti e altri file HTML (HyperText Markup Language): linguaggio di markup derivato da SGML per descrivere i documenti

Architettura del WWW

Architettura del WWW Il WWW segue l approccio client-server : Il browser(firefox, Internet Explorer, Opera,..) : lato client; richiede le pagine al Web server e le visualizza Il Web server: lato server; invia le pagine richieste Pagine statiche, memorizzate sul file system Pagine dinamiche, assemblate dinamicamente a partire da contenuti memorizzati ad esempio nei database (il DBMS -lato server- contiene i dati usati per assemblare le pagine dinamiche) Una tipica interazione: Il client (browser) si collega al Web server tramite HTTP L utente, richiede l accesso alle pagine Web, individuate tramite i loro indirizzi (URL) Il browser interpreta l URL e invia una richiesta HTTP al server che detiene il documento Il server Web estrae (o costruisce dinamicamente) la pagina e la invia con HTTP al browser Il browser interpreta la pagina (ovvero l HTML di cui è composta) e ne visualizza il contenuto in base alle regole contenute nel file HTML

URL URL = Uniform Resource Locator http://www.poliba.it/didattica/index.html#contatti Schema: http Host o Server: www.poliba.it Percorso: Didattica/index.html Fragment: #Contatti

URI URI = Uniform Resource Identifier Generalizzazione dell'url: sono ammessi diversi schemi http, ftp, maito, imap, https,... (il registro ufficiale è manutenuto dall'internet Assigned Number Authority IANA) Un URI è fondamentalmente rappresentato come schema:parte-specifica-dello-schema Esempi Sono URI ma non sono URL : isbn:978-1-4503-1112-0 doi:10.1145/2362499.2362501 È sia un URI che un URL: http://www.poliba.it/didattica/index.html#contatti

URN, IRI URN = Uniform Resource Name È un particolare tipo di URI che non fa riferimento a nessuna locazione fisica. Esempio: urn:isbn:0-471-94128-x IRI = Internationalized Resource Identifiers Permettono l'uso di caratteri che non appartengono alla codifica ASCII

HTTP HTTP (HyperText Transfer Protocol) è un protocollo di livello applicativo per sistemi informativi ipermediali collaborativi e distribuiti (RFC 2616) Nato per lo scambio di documenti ipertestuali, ma utilizzato attualmente in un vasto insieme di applicazioni Caratteristiche basilari di HTTP: Generico Stateless

Versioni di HTTP HTTP è esistito in tre versioni: 0.9: semplicissimo protocollo client-server di sola richiesta di risorse HTML, senza flessibilità né nella direzione, né nel formato delle risorse. Uso esclusivo del metodo di richiesta GET 1.0 (RFC 1945): Prima versione standard: protocollo generico e privo di stato. Vengono introdotti ulteriori metodi di richiesta delle risorse 1.1 (RFC 2068, 2069, 2616, 2617): la versione attuale di HTTP, introduce nuovi meccanismi di caching, permette multi-homing (più siti sullo stesso host) e connessioni persistenti

Principio di funzionamento di HTTP Modello client-server Protocollo di tipo richiesta-risposta

Definizioni base Protocollo generico: HTTP è indipendente dal formato dati con cui vengono trasmesse le risorse. Può funzionare per documenti ipertestuali HTML, ma anche per file binari, eseguibili, oggetti distribuiti o altre strutture dati. Assenza di stato: Il server non è tenuto a mantenere informazioni che persistano tra una connessione e la successiva sulla natura, identità e precedenti richieste di un client. Il client è tenuto a ricreare da zero il contesto necessario al server per rispondere. Non vi è memoria delle richieste effettuate.

Principali Entità in Gioco Client: un applicazione che richiede una connessione HTTP, con lo scopo di inviare richieste Server: un applicazione che accetta connessioni HTTP e genera risposte User agent: il client che inizia una richiesta HTTP. Tipicamente è un browser. Origin server: il server che possiede fisicamente la risorsa richiesta

Struttura di una richiesta Method: indica l azione del server richiesta dal client URL: è il percorso della risorsa, normalmente relativo al server Version: è HTTP/1.0 o HTTP/1.1 Header: sono linee RFC 822, classificabili come: generali, di entità, di richiesta Body: è un messaggio MIME

Esempio di richiesta GET /index.html HTTP/1.1 Referer: http://www.poliba.it/pippo.html User-Agent: Mozilla/4.61 Host: www.microsoft.com:80 Accept: image/gif, image/jpeg, image/png, */* Accept-Encoding: gzip Accept-Language: it Accept-Charset: iso-8859-1,*,utf-8

I metodi della richiesta Esistono numerosi metodi I più importanti: GET; HEAD; POST; PUT Meno (quasi mai) usati OPTIONS DELETE TRACE CONNECT Un metodo HTTP può essere: Sicuro: non genera cambiamenti allo stato interno del server Idempotente: l effetto sul server di più richieste identiche è lo stesso di quello di una sola richiesta

Metodo GET Il metodo più frequentemente usato (ed unico in v. 0.9) è GET, che richiede una risorsa ad un server GET è sicuro ed idempotente, e può essere: assoluto (normalmente, cioè quando la risorsa viene richiesta senza altre specificazioni) condizionale (se la risorsa fa match con un criterio indicato negli header If-match, If-modified-since, If-range, etc.) parziale (se la risorsa richiesta è una sottoparte di una risorsa memorizzata)

Metodo HEAD Il metodo HEAD è simile al metodo GET, ma il server deve rispondere soltanto con gli header relativi, senza il corpo. HEAD è sicuro ed idempotente, e viene usato per verificare: la validità di un URI: la risorsa esiste e non è di lunghezza zero l accessibilità di un URI: la risorsa è accessibile presso il server, e non sono richieste procedure di autenticazione del documento la coerenza di cache di un URI: la risorsa non è stata modificata nel frattempo, non ha cambiato lunghezza, valore hash o data di modifica

Metodi PUT e DELETE Il metodo PUT serve per trasmettere delle informazioni dal client al server, creando o sostituendo la risorsa specificata In generale, l argomento del metodo PUT è la risorsa che ci si aspetta di ottenere facendo un GET in seguito con lo stesso URL PUT è idempotente ma non sicuro DELETE richiede la rimozione della risorsa dal Web server

Metodo POST Il metodo POST trasmette dal client al server delle informazioni subordinate (aggiuntive) ad una risorsa (generalmente preesistente) Esempi: un record a un database, un messaggio su un forum o newsgroup, un file a una directory, etc. Caso tipico: invio dei dati immessi dall'utente in un form POST non è sicuro né idempotente Il server può rispondere positivamente in tre modi: 200 Ok: dati ricevuti e trasmessi alla risorsa specificata; è presente un body nel messaggio di risposta 201 Created: dati ricevuti, la risorsa non esisteva ed è stata creata 204 No content: dati ricevuti e trasmessi alla risorsa specificata; non è presente un body nel messaggio di risposta

Struttura di una risposta

Esempio di risposta HTTP/1.1 200 OK Date: Fri, 11 Mar 2005 11:42:03 GMT Server: Apache/1.3.3 Last-Modified: Tue, 1 Feb 2005 08:21:02 GMT Content-Length: 127 Content-Type: text/html <HTML>... </HTML>

Status code E' un numero di tre cifre, di cui la prima indica la classe della risposta, le altre due la risposta specifica. Esistono le seguenti classi: 1xx: Informational. Una risposta temporanea alla richiesta, durante il suo svolgimento 2xx: Successful. Il server ha ricevuto, capito e servito la richiesta 3xx: Redirection. Il server ha ricevuto e capito la richiesta, ma sono necessarie altre azioni da parte del client per portarla a termine 4xx: Client error. La richiesta del client non può essere soddisfatta per un errore da parte del client (errore sintattico o richiesta non autorizzata) 5xx: Server error. La richiesta può anche essere corretta, ma il server non è in grado di soddisfare la richiesta per un problema interno (suo o di applicazioni CGI)

Esempi di status code + reason phrase 100 Continue (se il client non ha ancora mandato il body) 200 Ok (GET con successo) 201 Created (PUT con successo) 301 Moved permanently (URL non valido, il server conosce la nuova posizione) 400 Bad request (errore sintattico nella richiesta) 401 Unauthorized (manca l autorizzazione) 403 Forbidden (richiesta non autorizzabile) 404 Not found (URL errato) 500 Internal server error (tipicamente, bug in un CGI) 501 Not implemented (metodo non conosciuto dal server)

HTML: codifica dei caratteri Per il linguaggio HTML cfr. lucidi 03-HTML.pdf Le pagine Web (HTML) sono rappresentate come file di testo: Un file di testo è logicamente una sequenza di caratteri, ma fisicamente una sequenza di byte Esistono diverse codifiche ASCII EBCDIC Unicode Unicode mira a coprire tutti i caratteri in tutte le lingue scritte passate e presenti

Caratteri UNICODE Un carattere è un simbolo che appare in un testo Lettere dell'alfabeto Pittogrammi (es. ) Accenti I caratteri Unicode sono entità astratte LATIN CAPITAL LETTER A LATIN CAPITAL LETTER A WITH RING ABOVE HIRAGANA LETTER SA RUNIC LETTER THURISAZ THURS THORN

Glifi UNICODE Un glifo è un segno grafico Esempio: Å Questo può rappresentare diversi caratteri LATIN CAPITAL LETTER A WITH RING ABOVE ANGSTROM SIGN O persino una sequenza di caratteri LATIN CAPITAL LETTER A COMBINING RING ABOVE Viceversa, alcuni caratteri possono corrispondere a glifi diversi

Code Point UNICODE Per risolvere l'ambiguità, Unicode assegna un code point (un numero) a ciascun carattere I code point vanno da 0 a 1'114'112 Solo circa 100'000 sono attualmente usati Esempio: al carattere HIRAGANA LETTER SA è assegnato il code point 12'373 I code point da 0 a 127 coincidono con ASCII Alcuni code point vengono lasciati come non assegnati

Codifica di caratteri UNICODE Una codifica di caratteri interpreta una sequenza di byte come sequenza di code point I byte vengono prima raggruppati in code unit di lunghezza fissa Per indicare un code point servono una o più code unit Esempi: UTF-8, UTF-16, UTF-32

World Wide Web Consortium (W3C) Sviluppa molte delle tecnologie del Web: HTML, CSS, XML, RDF, OWL,... Fondato nel 1994 Oltre 300 aziende e organizzazioni ne sono membri Diretto da Tim Berners-Lee Sedi principali: MIT (USA), Inria (Francia), Keiko (Giappone) Uffici nazionali in molti Paesi (anche in Italia)

Attori e principi del W3C Attori: Membri ($50000/anno - $5000 per università ed enti no-profit) Team Advisory board Technical Architecture Group Working Groups Principi: Consenso tra i membri Limitato ricorso a vincoli di proprietà intellettuale (brevetti, etc.) Accesso libero via Web a tutti i documenti (diversamente da ISO, ad esempio)

Documenti del W3C Le specifiche del W3C seguono questo percorso: Working Draft Candidate Recommendation Proposed Recommendation Recommendation Documenti non normativi Working Group Notes Member Submissions Staff Comments Team Submissions

Riferimenti Dispensa disponibile al link : sisinflab.poliba.it/colucci/files/si2ig1415/lucidi%20corso/11bintro_reti.pdf Di Noia, De Virgilio, Di Sciascio, Donini, Semantic Web: tra ontologie e Open Data, Apogeo, 2013 (cap. 1). R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee, Hypertext Transfer Protocol -- HTTP/1.1, RFC 2616, http://www.w3.org/protocols/rfc2616/rfc2616.html