Il Protocollo HTTP e il WWW



Documenti analoghi
Programmazione in Rete

Il Protocollo HTTP e il WWW

Web e HTTP. path name. host name Realizzato da Roberto Savino.

Reti di Calcolatori:

INFORMATICA DISTRIBUITA. lez 5 World Wide Web (cont)

Applicazioni e protocolli a livello applicazione

Livello di applicazione: Web e HTTP

Livello applicativo. Obiettivi specifici: Protocolli specifici: Obiettivi generali:

Esercizio 1 : HTTP. Soluzione Esercizio 1 : HTTP

Introduzione alle Architetture di Rete

url uniform resource locator

Capitolo 2 - parte 2. Corso Reti ed Applicazioni Mauro Campanella

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

Mezzi trasmissivi. Twisted Pair (TP) Due cavi di rame isolati ed intrecciati

Tito Flagella - Il protocollo HTTP

Il protocollo HTTP (cont.)

Applicazioni e protocolli a livello applicazione

Applicazioni web. Sommario. Parte 4 http. http Metodi, intestazioni e codici di stato get post Parametri e cookie. Applicazioni web.

Livello applicazione: protocollo HTTP

Sicurezza delle applicazioni web: protocollo HTTP

Corso di Laurea Specialistica in Ingegneria Informatica Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni

Applicazioni e protocolli application-layer

Parte II: Reti di calcolatori Lezione 7 (31)

WEB: Architettura Client Server

Ipertesto (testo + link a risorse)

Parte II: Reti di calcolatori Lezione 6 (30)

D - ESERCIZI: Protocolli applicativi ed altro:

INFORMATICA DISTRIBUITA. lez 6 World Wide Web (cont)

Il Livello Applicazione

Livello applicativo: protocollo HTTP

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Casi pratici esempi. http smtp. Copyright Luciano Bononi 2004 (some figure credits to Kurose, Ross, Internet e reti di calcolatori)

Parte II: Reti di calcolatori Lezione 6 (30)

Che tipo di transport service è necessario per una applicazione? Protocolli application-layer (cont). Applicazioni e protocolli application-layer

Livello applicativo. Obiettivi specifici: ! Protocolli specifici: " http " ftp " smtp " pop " dns " Programmazione di applicazioni

Livello Applicativo. Application Layer. Parte 1 Principi generali. Cosa vediamo. Parte 1 Principi generali. Parte 2 Il Web e il protocollo HTTP

Servizi di rete e web. Prof. Maurizio Naldi A.A. 2015/16

Sicurezza delle applicazioni web: protocollo HTTP

Introduzione ad HTTP WWW. Fabio Vitali

Web (1) Internet. Elementi di Sicurezza e Privatezza Lezione 9 Web Security (1) Chiara Braghin. chiara.braghin@unimi.it! 20/11/12. browser.

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

Protocolli di applicazione

Livello Applicativo. Application Layer

Livello Applicativo. Application Layer. Parte 1 Principi generali. Cosa vediamo. Parte 1 Principi generali. Parte 2 Il Web e il protocollo HTTP

Processi dell applicazione, socket e il sottostante protocollo di trasporto. Protocolli application-layer (cont).

Corso di Applicazioni Telematiche

Livello applicativo. Obiettivi generali: Obiettivi specifici: Protocolli specifici:

Livello applicazione: protocollo HTTP, cookie, web cache

OSOR. Applicazioni di Rete

WWW = URL + HTTP + HTML

L'HyperText Transfer Protocol (HTTP)

IL LIVELLO APPLICAZIONI WEB e HTTP

Protocollo HTTP. Alessandro Sorato

Reti di Calcolatori. IL LIVELLO APPLICAZIONI WEB e HTTP

IL LIVELLO APPLICAZIONI WEB e HTTP

Reti di Calcolatori I. Prof. Roberto Canonico Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

Applicazioni di rete 1

Il Protocollo HTTP e la programmazione di estensioni Web

IL LIVELLO APPLICAZIONI WEB e HTTP

Università degli Studi di Bergamo

Sicurezza delle applicazioni web: protocollo HTTP

Reti di Calcolatori AA 2011/2012. Protocolli di applicazione. Livello di applicazione. Capitolo 2: Livello applicazione. Csaba Kiraly Renato Lo Cigno

Il protocollo HTTP e HTTPS

Chapter 2 Application Layer

Il protocollo HTTP. Corso di Applicazioni Telematiche. A.A Lezione n.2 Prof. Roberto Canonico

Applicazioni Web, HTTP e REST. Matteo Vaccari Milano XP User Group, 3 ottobre 2007

Architetture Web Protocolli di Comunicazione

Il World Wide Web. Marco Porta - CIM: Web Design & Technologies

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11)

Stack protocolli TCP/IP

Tecnologie di Sviluppo per il Web

Protocolli di strato applicazione

Metodologie Informatiche Applicate al Turismo

Protocolli strato applicazione in Internet

Architetture Applicative Il Web

Tecnologie di Sviluppo per il Web

Il protocollo HTTP. Caratteristiche del protocollo HTTP. Versioni del protocollo. Due tipologie di messaggi:

Il protocollo HTTP. Corso di Applicazioni Telematiche. A.A Lezione n.2 Prof. Roberto Canonico

Protocolli strato applicazione in Internet

2Dove vogliamo arrivare:

Attacchi Web - Introduzione alla sicurezza nelle applicazioni Web

Protocolli per il Web. Impianti Informatici. Protocolli applicativi

Introduzione. Java HTTP. G. Prencipe

Prova in itinere Esempio d esame 1

PROTOCOLLI APPLICATIVI PER INTERNET

INFORMATICA GENERALE - MODULO 2 CdS in Scienze della Comunicazione. CRISTINA GENA

Architettura dell Informazione

Protocolli HTTP ed FTP

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

Protocolli applicativi basati su TCP/IP

Reti di calcolatori e Internet (Parte II) Sistemi e Tecnologie Informatiche

Uso di Internet: introduzione. Prof. Franco Callegati

Tecnologie per la Comunicazione Aziendale

Lo strato di applicazione in Internet

Appunti di Sistemi A cura del prof. ing. Mario Catalano. Internet e il Web

Corso di Laurea in Ingegneria Informatica. Reti di Calcolatori. Livello di applicazione Uso dei socket, il World Wide Web A.A.

5 - Protocolli Applicativi

World Wide Web (WWW o Web)

INFORMATICA GENERALE - MODULO 2 CdS in Scienze della Comunicazione. CRISTINA GENA

Transcript:

Web Il Protocollo HTTP e il WWW Gianluigi Ferrari Diparnto di Informatica Università di Pisa Pagina Web: Insieme di objects Indirizzo tramite URL. URL: Unifor Resource Locator è l indirizzo di rete di una risorsa (Network Reference) nome host + path: www.di.unipi.it/index.ht ml User agent = browser: MS Internet Explorer Netscape Communicator Server = Web : Apache (public domain) MS Internet Information Server 1 2 HTTP HTTP http: hypertext transfer protocol Protocollo del WEB Modello / : browser che richiede oggetti WEB : Web invia gli oggetti WEB http1.0: RFC 1945 http1.1: RFC 2068 PC running Explorer Mac running Navigator Server running NCSA Web http: basato su TCP: attiva una connessione TCP (crea il socket) verso il (porta 80) accetta la richiesta TCP del Avviene lo scambio di msg http (application-layer protocol messages) tra il browser (http ) e il Web (http ) Si chiude la. http è senza memoria stateless non ha informazioni di stato sulle richieste passate problema Protocolli con stato sono complicati! Gestione dello stato Fallimenti 3 4 1

Connessioni HTTP Non Persistenti Un oggetto viene trasmesso su una. HTTP/1.0: nonpersistent HTTP Persistenti Un insieme di oggetti possono essere scambiati sulla stessa HTTP/1.1: persistent connections -- default mode 5 HTTP: Esempi Supponiamo di voler aprire una pagina con indirizzo www.someschool.edu/somedepartment/home.index (testo e riferimenti a 10 oggetti JPEG) 1a. http () richiede una con il WEB all indirizzo www.someschool.edu. La porta 80 è la porta di default per I http. 2. http () invia un messaggio di richiesta (con la URL) nella 1b. http () all indirizzo www.someschool.edu è in attesa sulla porta 80. Accetta la richiesta di connessione 3. http () riceve la richiesta e invia il messaggio di risposta con l informazione richiesta (la pagina WEB somedepartment/home.index), sulla 6 Esempio (cont.) Round Trip Time -- RTT 5. http () riceve la risposta con il file html. Parsing del file html si trovano i 10 riferimenti agli oggetti jpeg 6. Si ripetono i passi 1-5 per tutti gli oggetti JPEG 4. http () chiude la. 7 RRT: tempo necessario a nchè un pacchetto di controllo e etti un gro completo senderreceiver-sernder. Tempi di risposta: 1 RTT per attivare la 1 RTT per la richiesta HTTP ed I primi byte di risposta file transmission total = 2RTT+transmit initiate TCP connection RTT request file RTT file received to transmit file 8 2

Connessioni persistenti e nonpersistenti Non-persistenti HTTP/1.0 Server: valutare la richiesta, inviare la risposta, chiudere la 2 RTT per scaricare un oggetto Persistenti default per la versione HTTP/1.1 Server utilizza la stessa connessione TCP per valutare la richiesta, inviare la risposta, chiudere la connessione Client invia le richieste subito dopo aver determinato l indirizzo (minore RTT). 9 Connessioni HTTP Nonpersistent HTTP: richiede 2 RTTs per oggetto Allocazione delle risorse per ogni Ma spesso I brower aprono connessioni parallele Persistent HTTP lascia le connessioni aperte dopo aver inviato la risposta Messaggi consecutivi utilizzano la stessa connessione Persistent without pipelining: e ettua una richiesta solamente dopo aver ricevuto la risposta della richieste precedente Persistent with pipelining: default -- HTTP/1.1 Il e invia una richiesta non appena incontra un riferimento 10 http: formato dei messaggi http: formato dei messaggi Due tipi di messaggi htpp: request, response : ASCII request line (GET, POST, HEAD commands) header lines GET /somedir/page.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr Carriage return, (carriage return, line feed) line feed: Indicano la fine del messaggio 11 12 3

http: messaggi di response http : codice di risposta status line (protocol status code status phrase) data, e.g., file html header lines HTTP/1.0 200 OK Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998... Content-Length: 6821 Content-Type: text/html data data data data data... 13 Esempi: 200 OK request succeeded, requested object later in this message 301 Moved Permanently requested object moved, new location specified later in this message (Location:) 400 Bad Request request message not understood by 404 Not Found requested document not found on this 505 HTTP Version Not Supported 14 POST Method POST Requests What browers submits in when a form is submitted to the Stylized way of passing form data 2 ways to encode form data: Fat URL via GET for older systems that didn t support POST POST method Most commonly used by browsers to send large form responses to s Forms are web pages that contain fields that the browser user can edit or change 15 16 4

POST Requests (cont d) Example: Client POST request POST /index.html HTTP/1.1 language=any&message=this+is+a+message+to +the++being+sent+by+the+browser+with +a+post+request POST /cgi-bin/rats.cgi HTTP/1.0 Referer: http://nes:8192/cgi-bin/rats.cgi Connection: Keep-Alive User-Agent: Mozilla/4.73 [en] (X11; U; Linux 2.2.12-20 i686) Host: nes:8192 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Content-type: application/x-www-form-urlencoded Content-length: 93 Account=cs111fall&First=richard&Last=martin&SSN=123456789&Bday=01 011980&.State=CreateAccount 17 18 HTTP Method types attiva una (crea il socket) verso il (porta 80) accetta la richiesta TCP del Avviene lo scambio di msg http (GET, POST, HEAD) tra il browser (http ) e il Web (http ) Si chiude la (v 1.0) oppure la connessione rimane aperta (v 1.1) 19 HTTP/1.0 GET POST HEAD asks to leave requested object out of response HTTP/1.1 GET, POST, HEAD PUT uploads file in entity body to path specified in URL field DELETE deletes file specified in the URL field 20 5

Una piccola esercitazione HTTP in context 1. Telnet Web : telnet www.eurecom.fr 80 Apertura di una All indirizzo www.eurecom.fr. Sulla porta 80 Client W.X.Y.Z cc = socket(a.b.c.d, 80); out.print( GET /newaccount.html http/1.0) ); Server A.B.C.D:80 ss= Socket(port 80); sc = ss.accept; 2. Operazione di GET: GET /~ross/index.html HTTP/1.0 3. Valutate la risposta ottenuta! Tasto di invio (due volte) si effettua la richiesta http 21 Time read header read input display HTML read input from socket parse header read data find resource build response header send resource write to socket 22 Autenticazione Cookies: informazioni di stato Autenticazione: meccanismo di controllo degli accessi ai documenti del stateless: i devono richiedere l autorizzazione ad ogni accesso autorizzazione: login con password authorization: header line nel msg di richiesta Senza l autorizzazione il rifiuta la richiesta di connessione WWW authenticate: header line nel msg di risposta 401: authorization req. WWW authenticate: + Authorization:line msg + Authorization:line msg 23 Four components: 1) cookie header line in the HTTP response message 2) cookie header line in HTTP request message 3) cookie file kept on user s host and managed by user s browser 4) back-end database at Web site Example: Susan access Internet always from same PC She visits a specific e- commerce site for first When initial HTTP requests arrives at site, site creates a unique ID and creates an entry in backend database for ID 24 6

Cookies Cookies Cookie file ebay: 8734 Cookie file amazon: 1678 ebay: 8734 one week later: usual usual + Set-cookie: 1678 usual cookie: 1678 usual msg creates ID 1678 for user cookiespecific action entry in backend database access access What cookies can bring: authorization shopping carts recommendations user session state (Web e-mail) Cookies and privacy: cookies permit sites to learn a lot about you search engines use redirection & cookies to learn yet more Cookie file amazon: 1678 ebay: 8734 usual cookie: 1678 usual msg cookiespectific action 25 26 Cookies Conditional GET invia un cookie al e Set-cookie: 1678453 utilizza il cookie nel seguito dell interazione cookie: 1678453 controlla se il cookie è corretto authentication Permette di ricordare le preferenze dell utente + Set-cookie: # cookie: # msg cookie: # msg cookieaction cookieaction 27 Caching : nel msg specifica la data della copia del dato nella cache If-modified-since: <date> : risponde in base a questa informazione HTTP/1.0 304 Not Modified If-modified-since: <date> HTTP/1.0 304 Not Modified If-modified-since: <date> HTTP/1.1 200 OK <data> oggetto non modificato oggetto modificato 28 7

Web Caches (proxy ) browser: accesso al Web mediato da una web cache invia le richieste alla web cache Se l oggetto è presente nella WEB cache si invia la direttamente la risposta Altrimenti si invia la richiesta al (remoto) Proxy origin origin 29 Ipotesi: cache è nella stessa sottorete dei i Diminuzione dei tempi di risposta Minore tra co LAN public Internet 1.5 Mbps link 10 Mbps LAN Proxy - cache s 30 8