URI e HTTP Fabio Vitali.

Slides:



Advertisements
Presentazioni simili
Informazioni di base sul funzionamento
Advertisements

Prof. Carla Fanchin – L.S. Tron
Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
Corso di Fondamenti di Informatica
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
IL PROTOCOLLO HTTP Puppo Marco.
Mantenimento dello stato Laboratorio Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Connessione con MySQL.
IL NOSTRO LABORATORIO Di INFORMATICA. Presentazione Nel nostro laboratorio abbiamo 24 postazioni con dei computer di tipo Desktop con queste caratteristiche:
ING. CARLO MANFUCCI COMUNE DI GROSSETO
Web e HTTP Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
2-1 Trasferimento di file: ftp Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights.
WWW Introduzione agli URI Fabio Vitali. WWW A seguire: URI2/29 Introduzione Qui esaminiamo: u Gli Universal Resource Identifier (URI) u Alcuni esempi.
WWW Introduzione ad HTTP Fabio Vitali. WWW Fabio Vitali2 Introduzione Oggi esaminiamo in breve: HTTP (HyperText Transfer Protocol) Un protocollo stateless.
1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.
Architettura del World Wide Web
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
World Wide Web, ipertesti e HTML Lezione 6
Il protocollo ftp.
RETI E INTERNET.
Reti di Calcolatori IL LIVELLO APPLICAZIONI WEB e HTTP.
Posta elettronica : per iniziare : per iniziare Primi passi con la posta elettronica Primi passi con la posta elettronica
4 Cosa è una rete? ã Punto di vista logico: sistema di dati ed utenti distribuito ã Punto di vista fisico: insieme di hardware, collegamenti, e protocolli.
Corso di Informatica per Giurisprudenza Lezione 7
Modulo 7 – reti informatiche u.d. 2 (syllabus – )
Modulo 7 – reti informatiche u.d. 1 (syllabus – )
Cos’è Internet Una rete globale di reti basata sul protocollo TCP/IP.
Internet L’essenziale.
1 Ripassino Reti di Computer Carasco 19/02/ Che cosa è una rete informatica? Una rete informatica è un insieme di computer connessi tra di loro.
Sistemi Informativi sul Web
Applicazioni Web HTTP, HTML e CSS Elaborato da Gianluca Lauteri e Daniele Filannino.
Creare pagine web Xhtlm. Struttura di una pagina.
Gianpaolo Cecere Introduzione
Il World Wide Web Lidea innovativa del WWW è che esso combina tre importanti e ben definite tecnologie informatiche: Documenti di tipo Ipertesto. Sono.
Sistemi di Elaborazione dellInformazione Modulo 3 -Protocolli applicativi Unità didattica 4 -Protocolli del Web Ernesto Damiani Lezione 4 – Caching HTTP.
BIOINFO3 - Lezione 101 GLI IPERTESTI Una delle innovazioni introdotte da HTML e dal WWW in generale, rispetto ad un testo normale è sicuramente la possibilità
BIOINFO3 - Lezione 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
Amministrazione della rete: web server Apache
Internet.
L’architettura a strati
FTP File Transfer Protocol
Creato da Riccardo Nuzzone
InternetInternet Sede: Salvo D’acquisto 2010/2011 Docente: Vito Monno.
Terminologia Una pagina web consiste di oggetti Un oggetto può essere un file HTML, una immagine JPG, ecc. Una pagina web consiste di un file HTML base.
Dal click alla pagina web... Centro di Calcolo Corso Internet 22 Novembre 1996 Stefano Bistarelli Università di Chieti-Pescara “G. D’Annunzio” Dipartimento.
La Crittografia nell’ambito del protocollo HTTP Classe: V istituto professionale (gestione aziendale) Obiettivo 1: Generazione di competenze e preparazione.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 -Protocolli del Web Ernesto Damiani Lezione 2 – Complementi.
Infrastruttura per la gestione distribuita di un sistema di prenotazione Progetto di: Fabio Fabbri Matricola
WWW Introduzione ad HTTP Fabio Vitali. WWW A seguire: HTTP2/52 Introduzione Oggi esaminiamo in breve: HTTP (HyperText Transfer Protocol) An application-level.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 -Protocolli del Web Ernesto Damiani Lezione 1 – World Wide.
WWW Introduzione al WWW Fabio Vitali Università di Bologna.
INTRODUZIONE A INTERNET
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 1 -Domain Name System Ernesto Damiani Lezione 1 – Nomi e indirizzi.
Reti di calcolatori LS1 Service Middleware Reti di calcolatori LS progetto di Andrea Belardi Infrastruttura dedicata alla gestione di servizi disponibili.
Introduzione ad HTTP Fabio Vitali.
Reti di calcolatori e sicurezza “Configurare il web-server Apache” a cura di Luca Sozio.
Servizi Internet Claudia Raibulet
Universita` degli studi di Perugia Corso di Laurea in Matematica Attribute Certificate Valentina Hamam Rosa Leccisotti.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 2 -Telnet, FTP e altri Ernesto Damiani Lezione 4 – Napster e.
WWW Introduzione agli URI Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u Gli Universal Resource Identifier (URI)
GUIDA ALL’UTILIZZO DEL
GESTIONE RETI TCP/IP l troubleshooting è necessario per risolvere molti problemi che si possono verificare all'interno di una rete, una delle aspirazioni.
Università degli Studi di Milano Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Corso di Strumenti e applicazioni del Web 5. Introduzione.
I NTERNET Rete interconnessa che permette il collegamento tra due host eterogenei, appartenenti a reti differenti separati anche da grande distanze. Internet.
Applicazione Presentazione Sessione Trasporto Rete Data link Fisico OSI Processo / Applicazione Trasporto Rete- Internet Interfaccia di.
INTERNET E INTRANET Classe VA SIA. La Storia di INTERNET ’ – ARPANET 1969 – anno di nascita università Michigan - Wayne 1970 – – INTERNET.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
+ Connettersi al web Nicolò Sordoni. + Verificare se lo smartphone è connesso Per poter accedere alla rete, è consigliato innanzitutto verificare se il.
Livello 7: Applicazione. Protocolli più importanti HTTP = Hyper Text Transfer Protocol HTTPS = Hyper Text Transfer Protocol over Secure Socket Layer DNS.
LE RETI Cos’è una rete Un po’ di storia Classificazione delle reti Mezzi fisici di trasmissione Modalità di trasmissione Topologia delle reti Internet.
Transcript della presentazione:

URI e HTTP Fabio Vitali

L’esigenza di identificatori (1) Fabio Vitali - Almaweb 2002 L’esigenza di identificatori (1) Gli URI sono stati verosimilmente il fattore determinante per il successo del WWW. Attraverso gli URI, il WWW è stato in grado di identificare risorse accessibili tramite il proprio protocollo, HTTP, e tramite tutti gli altri protocolli esisenti (FTP, Telnet, Gopher, WAIS, ecc.). Il punto principale a cui gli altri sistemi non erano arrivati era una sintassi universale, indipendente dal protocollo e facilmente memorizzabile o scambiabile con cui identificare le risorse di rete.

L’esigenza di identificatori (2) Fabio Vitali - Almaweb 2002 L’esigenza di identificatori (2) Il WWW utilizza gli identificatori in una varietà di modi: Link ipertestuali disponibili nel documenti HTML Immagini ed altri oggetti inclusi nel documento HTML (che è un formato solo testo) Connessioni e relazioni globali tra documenti (ad esempio, script e link possono essere messi esternamente al documento HTML e da sso riferiti globalmente. In tutti questi casi lo stesso identificatore può essere usato dal protocollo di comunicazione, espresso nella sintassi HTML, o digitato direttamente dall’utente.

Criteri di design degli URI (1) Fabio Vitali - Almaweb 2002 Criteri di design degli URI (1) La sintassi degli URI é progettata per essere Estensibile: si possono aggiungere nuovi schemi, al fine di mantenere l’accessibilità delle risorse anche se nuovi protocolli vengono inventati Completa: tutti i nomi esistenti sono codificabili e nuovi protocolli sono comunque esprimibili tramite URI Stampabile: é possibile esprimere URI con caratteri ASCII a 7-bit, così da permettere scambi lungo qualunque canale, per quanto limitato o inefficiente, inclusi carta e penna. Lo standard URI definisce alcune regole per la generazione di schemi di naming (insiemi di nomi caratterizzati dalla dipendenza da un protocollo di accesso comune), per la definizione dei caratteri accettabili e del carattere di escape.

Criteri di design degli URI (2) Fabio Vitali - Almaweb 2002 Criteri di design degli URI (2) Gli Universal Resource Identifier (URI) sono, per definizione, o degli Universal Resource Names (URN), o degli Universal Resource Locator (URL). Gli URL sono un indirizzo della risorsa che possa essere immediatamente utilizzato da un programma per accedere alla risorsa. Gli URL contengono tutte le informazioni necessarie per accedere all’informazione, ma sono fragili a modifiche non sostanziali del meccanismo di accesso (es. cambio del nome di una directory). Gli URN sono un nome stabile e definitivo di una risorsa, che possa fornire un informazione certa ed affidabile sulla sua esistenza ed accessibilità. Gli URN debbono essere trasformati da un apposito servizio, negli URL attualmente associati alla risorsa. Inoltre la mappa deve essere aggiornata ogni volta che la risorsa viene spostata.

Fabio Vitali - Almaweb 2002 URL Lo schema, in un URL, corrisponde al protocollo di accesso da usare per accedere alla risorsa. La parte specifica dipende dal protocollo specifico. HTTP e HTTPS - La sintassi è: http://host[:port]/path[#fragment][?query] https://host[:port]/path[#fragment][?query] host é l’indirizzo TCP-IP o DNS, dell’host su cui si trova la risorsa port é la porta a cui il server é in ascolto per le connessioni. In mancanza di specificazione, la porta é quella di default, 80 per HTTP e 443 per HTTPS. path é un pathname gerarchico per l’identificazione della risorsa fragment é un identificativo di una sottoparte dell’oggetto. La definizione e il ritrovamento di queste sottoparti é a carico del client, e quindi la parte di fragment viene ignorata dal server, che restituisce l’intero oggetto. query é una frase che costituisce l’oggetto di una ricerca sulla risorsa specificata.

HTTP HTTP (HyperText Transfer Protocol) Fabio Vitali - Almaweb 2002 HTTP HTTP (HyperText Transfer Protocol) Un protocollo stateless per la ricerca, il recupero e la manipolazione E’ un protocollo generico, stateless, che può essere usato anche per scopi diversi dallo scambio di documenti ipertestuali, come name server, per sistemi object-oriented distribuiti, ecc. Caratteristica importante in HTTP é la negoziazione del formato di dati utilizzato, per garantire l’indipendenza del sistema dal formato di rappresentazione dei dati. HTTP è esistito in tre versioni: 0.9, 1.0 (RFC 1945) e 1.1 (RFC 2616) Netscape ha proposto il meccanismo dei cookie nel’RFC 2109.

Ruoli delle applicazioni HTTP (1) Fabio Vitali - Almaweb 2002 Ruoli delle applicazioni HTTP (1) HTTP è un protocollo di comunicazione piuttosto semplice, basato sulla comunicazione tra due applicazioni, il browser, che manda richieste di documenti, ed il server, che risponde. In realtà i ruoli sono un po’ più precisi: Client: un’applicazione che stabilisce una connessione HTTP, con lo scopo di mandare richieste. Server: un’applicazione che accetta connessioni HTTP, e genera risposte. User agent: Quel particolare client che inizia una richiesta HTTP (tipicamente un browser, ma può anche essere un bot). Origin server: il server che possiede fisicamente la risorsa richiesta (è l’ultimo della catena)

Ruoli delle applicazioni HTTP (2) Fabio Vitali - Almaweb 2002 Ruoli delle applicazioni HTTP (2) Proxy: Un’applicazione intermediaria che agisce sia da client che da server. Le richieste sono soddisfatte autonomamente, o passandole ad altri server, con possibile trasformazione, controllo, verifica. Gateway: un’applicazione che agisce da intermediario per qualche altro server. A differenza del proxy, il gateway riceve le richieste come fosse l’origin server: il client può non essere al corrente che si tratta del gateway. Tunnel: un programma intermediario che agisce da trasmettitore passivo di una richiesta HTTP. Il tunnel non fa parte della comunicazione HTTP, anche se può essere stato attivato da una connessione HTTP. In più è importante ricordare: Cache: memoria locale di un'applicazione e il sistema che controlla i meccanismi della sua gestione ed aggiornamento. Qualunque client o server può utilizzare una cache, ma non un tunnel.

Fabio Vitali - Almaweb 2002 La connessione HTTP (1) La connessione HTTP è composta da una serie di richieste ed una serie corrispondente di risposte. La differenza principale tra HTTP 1.0 e 1.1 è stata la possibilità di specificare coppie multiple di richiesta e risposta nella stessa connessione. Le richieste possono essere messe in pipeline, ma le risposte debbono essere date nello stesso ordine delle richieste, poiché non è specificato un metodo esplicito di associazione.

La connessione HTTP (2) client server client server client server Fabio Vitali - Almaweb 2002 La connessione HTTP (2) client server client server client server open open open close open close close open close close HTTP 1.0 HTTP 1.1 HTTP 1.1 con pipelining

Fabio Vitali - Almaweb 2002 La richiesta La richiesta è un messaggio formato da una riga di richiesta e da dati ulteriori facoltativi. Method URI Version CrLf [Header]* CrLf Body dove Method indica l’azione del server richiesta dal client URI è un identificativo di risorsa locale al server Version è “HTTP/1.0” o “HTTP/1.1” Header sono linee RFC822, classificabili come header generali, header di entità, ed header di richiesta. Body è un messaggio MIME

Un esempio di richiesta Fabio Vitali - Almaweb 2002 Un esempio di richiesta GET /beta.html HTTP/1.1 Referer: http://www.alpha.com/alpha.html Connection: Keep-Alive User-Agent: Mozilla/4.61 (Macintosh; I; PPC) Host: www.alpha.com:80 Accept: image/gif, image/jpeg, image/png, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8

I metodi della richiesta (1) Fabio Vitali - Almaweb 2002 I metodi della richiesta (1) GET Il più importante metodo di HTTP, richiede una risorsa ad un server. Questo è il metodo più frequente, ed è quello che viene attivato facendo click su un link ipertestuale di un documento HTML, o specificando un URL nell’apposito campo di un browser. HEAD Il metodo HEAD è simile al metodo GET, ma il server deve rispondere soltanto con gli header relativi, senza il corpo. HEAD 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 sono on 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.

I metodi della richiesta (2) Fabio Vitali - Almaweb 2002 I metodi della richiesta (2) POST Il metodo POST serve per trasmettere delle informazioni dal client al server, ma senza la creazione di una nuova risorsa. POST viene usato per esempio per sottomettere i dati di una form HTML ad un’applicazione CGI sul server. PUT 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 nome. L’argomento del metodo POST, invece, è una risorsa esistente a cui si aggiunge (es. come input) informazione.

Fabio Vitali - Almaweb 2002 Gli header Gli header sono righe (nome: valore) che specificano caratteristiche del messaggio trasmesso o ricevuto: esse si dividono in: Header generali della trasmissione Data, codifica, versione, tipo di comunicazione, ecc. Header dell’entità trasmessa Content-type, Content-Length, data di scadenza, ecc. Header della richiesta effettuata Chi fa la richiesta, a chi viene fatta la richiesta, che tipo di caratteristiche il client è in grado di accettare, che autorizzazione puo’ portare, ecc. Header della risposta generata Che server dà la risposta, che tipo di autorizzazione è necessaria, ecc.

La risposta Version status-code reason-phrase CrLf [Header]* CrLf Body Fabio Vitali - Almaweb 2002 La risposta Version status-code reason-phrase CrLf [Header]* CrLf Body GET /index.html HTTP/1.1 Host: www.cs.unibo.it:80 HTTP/1.1 200 OK Date: Fri, 26 Nov 1999 11:46:53 GMT Server: Apache/1.3.3 (Unix) Last-Modified: Mon, 12 Jul 1999 12:55:37 GMT Accept-Ranges: bytes Content-Length: 3357 Content-Type: text/html <HTML> …. </HTML>

Fabio Vitali - Almaweb 2002 Status code Lo status code è un numero di tre cifre, di cui la prima indica la classe della risposta, e 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 accettato la richiesta. 3xx: Redirection. Il server ha ricevuto e capito la richiesta, ma sono necessarie altre azioni da parte del client per portare a termine la richiesta. 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).

Fabio Vitali - Almaweb 2002 Esempi di status code 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 valida, 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 un CGI mal fatto) 501 Not implemented (metodo non conosciuto dal server)

Fabio Vitali - Almaweb 2002 I cookies HTTP è stateless: non esiste nessuna struttura ulteriore alla connessione, e il server non è tenuto a mantenere informazioni su connessioni precedenti. Un cookie (non è in HTTP, è un’estensione di Netscape, proposta nell’RFC 2109) è una breve informazione scambiata tra il server ed il client. Il client mantiene lo stato di precedenti connessioni, e lo manda al server di pertinenza ogni volta che richiede un documento. Questioni di sicurezza permettono di distinguere tra cookies spediti solo al server di appartenenza e cookies spediti a qualunque computer del dominio.

I cookies (2) server HTTP applicazione CGI client Fabio Vitali - Almaweb 2002 I cookies (2) server HTTP applicazione CGI client request request genera il cookie Output + cookie Risposta + Set-Cookie request + Cookie request + Cookie analizza il cookie Output Risposta