Protocollo HTTP. Alessandro Sorato



Похожие документы
Protocolli applicativi: FTP

Architetture Web Protocolli di Comunicazione

Comunicazioni sicure su Internet: https e SSL. Fisica dell Informazione

Approfondimento di Marco Mulas

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

Dal protocollo IP ai livelli superiori

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

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

Il Protocollo HTTP e la programmazione di estensioni Web

appunti delle lezioni Architetture client/server: applicazioni client

Internet Architettura del www

Architettura client-server

prof. Mario Dalessandro

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

Lezione 1 Introduzione

Protezione delle informazioni in SMart esolutions

Stack protocolli TCP/IP

OSOR. Applicazioni di Rete

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

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

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

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

Sicurezza delle applicazioni web: protocollo HTTP

Reti di Calcolatori. Il Livello delle Applicazioni

Sicurezza nelle applicazioni multimediali: lezione 7, sicurezza dei protocolli. Sicurezza dei protocolli (https, pop3s, imaps, esmtp )

Architetture Applicative Il Web

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

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

La sicurezza nel Web

Le Reti Informatiche

Sicurezza delle applicazioni web: protocollo HTTP

Reti di Telecomunicazione Lezione 7

Reti di Telecomunicazione Lezione 6

WEBALIZER GUIDA ALLA LETTURA DELLE STATISTICHE

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

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

MANUALE UTENTE FORMULA PEC

Informatica per la comunicazione" - lezione 13 -

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

Internet e posta elettronica. A cura di Massimiliano Buschi

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

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

Omeka PURL Plugin. Torino, 30 settembre Emilio Remogna

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

TCP/IP: INDIRIZZI IP SIMBOLICI

Programmazione in Rete

Reti di Telecomunicazione Lezione 8

Come funziona internet

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

FTP. Appunti a cura del prof. ing. Mario Catalano

SSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer

Utilizzo di Certificati SSL e relative implicazioni

Sicurezza a livello IP: IPsec e le reti private virtuali

Lo scenario: la definizione di Internet

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

Lextel Servizi Telematici per l Avvocatura

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

HTTP adaptation layer per generico protocollo di scambio dati

ESERCITAZIONE Semplice creazione di un sito Internet

Protocolli per il Web. Impianti Informatici. Protocolli applicativi

Secure domande e risposte

Il seguente Syllabus è relativo al Modulo 7, Reti informatiche, e fornisce i fondamenti per il test di tipo pratico relativo a questo modulo

Lezione n 1! Introduzione"

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

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

Modulo 1: Posta elettronica

La sicurezza nelle comunicazioni Internet

Dettaglio attività e pianificazione. snamretegas.it. San Donato Milanese Aprile 2014

Livello cinque (Livello application)

Software Servizi Web UOGA

ARP (Address Resolution Protocol)

Introduzione alla Posta Elettronica Certificata (PEC): le regole tecniche

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

Domande frequenti su Phoenix FailSafe

Consiglio Nazionale delle Ricerche Area di Ricerca di Bologna Istituto per le Applicazioni Telematiche di Pisa

Semplificazione e Nuovo CAD L area riservata dei siti web scolastici e la sua sicurezza. Si può fare!

PROTOCOLLI APPLICATIVI PER INTERNET

SERVIZI OFFERTI DA INTERNET INTERNET POSTA ELETTRONICA

Informatica per la comunicazione" - lezione 9 -

Reti di calcolatori. Reti di calcolatori

Acquisto con carta di credito. Acquisto con carta di credito

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

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

CONCETTI DI NAVIGAZIONE IN RETE

Servizio di Posta elettronica Certificata (PEC)

InterNet: rete di reti

Transmission Control Protocol

I Principali Servizi del Protocollo Applicativo

Avvio di Internet ed esplorazione di pagine Web.

Il Web Server e il protocollo HTTP

Cenni di programmazione distribuita in C++ Mauro Piccolo

Транскрипт:

Un protocollo è un insieme di regole che permettono di trovare uno standard di comunicazione tra diversi computer attraverso la rete. Quando due o più computer comunicano tra di loro si scambiano una serie di informazioni. Per potersi scambiare informazioni, i vari computer devono avere dei protocolli che permettano di attribuire ad un determinato messaggio un significato univoco per tutte le macchine. Un protocollo descrive: il formato che il messaggio deve avere il modo in cui i computer devono scambiarsi messaggi

HyperText Transfer Protocol risale alla fine degli anni ottanta come protocollo di trasferimento per il world wide web protocollo di livello applicazione per sistemi di informazione distribuiti, collaborativi, ipermediali usa la porta 80 TCP permette la costruzione di sitemi di accesso all informazione indipendentemente dal tipo dall informazione stessa permette la gestione dei messaggi in formato MIME (Multipurpose Internet Mail Extension)

Caratteristiche del protocollo HTTP Scambio di messaggi di richiesta e risposta Protocollo stateless (senza memoria) Basato sul meccanismo di naming degli URI per l identificazione delle risorse Web Gestione dei Metadati sulla risorsa ovvero INFORMAZIONI sulla risorsa (non la risorsa) come ad esempio: Dimensione della risorsa Tipo della risorsa (ad es. text/html) - MIME per classificare il formato dei dati Data dell ultima modifica della risorsa

Versioni HTTP HTTP/1.0-1996 (v. 0.9 del 1990-92) HTTP/1.1-1999

Tipologie di Messaggi HTTP richiesta risposta Composizione dei Messaggi HTTP Header (intestazione) - Testo ASCII Body (corpo) - OPZIONALE

Una richiesta HTTP comprende Metodo URI versionehttp informazioni aggiuntive Il metodo specifica il tipo di operazione che il client richiede al server URI identifica la risorsa locale rispetto al server Informazioni aggiuntive, come ad esempio: data e ora della richiesta user agent referrer...

Una risposta HTTP comprende versionehttp codice di stato e descrizione testuale altre informazioni riguardanti la risposta eventuale contenuto della risorsa richiesta Se la pagina Web richiesta è composta da molteplici risorse, ciascuna di esse è identificata da un URL differente: il browser deve inviare un messaggio di richiesta HTTP per ognuna delle risorse incorporate nella pagina.

GET / HTTP/1.1[CRLF] Host: www.zuccante.it[crlf] Connection: close[crlf] User-Agent: Web-sniffer/1.0.36 (+http://web-sniffer.net/)[crlf] Accept-Encoding: gzip[crlf] Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7[CRLF] Cache-Control: no[crlf] Accept-Language: de,en;q=0.7,en-us;q=0.3[crlf] Referer: http://web-sniffer.net/[crlf] [CRLF] HTTP/1.1 200 OK(CR)(LF) Content-Length: 260(CR)(LF) Content-Type: text/html(cr)(lf) Content-Location: http://www.zuccante.it/prima.html(cr)(lf) Last-Modified: Fri, 08 Jan 2010 23:42:23 GMT(CR)(LF) Accept-Ranges: bytes(cr)(lf) ETag: "901feb39bc90ca1:30d2"(CR)(LF) Server: Microsoft-IIS/6.0(CR)(LF) Date: Mon, 09 Aug 2010 09:51:42 GMT(CR)(LF) Connection: close(cr)(lf) (CR)(LF) http://web-sniffer.net/ - http://www.rexswain.com/ httpview.html

Metodi della richiesta: GET HEAD POST PUT (1.0 non standard) DELETE (1.0 non standard) TRACE OPTIONS

Il metodo GET E il metodo più importante e frequente, viene utilizzato per richiedere una risorsa al server La richiesta è composta solo dall header GET /index.html GET /img/pippo.gif

Il metodo HEAD E una variante di GET utilizzata principalmente per scopi di controllo e debug Il server risponde soltanto con i metadati associati alla risorsa richiesta (solo header) Viene utilizzato per verificare: Validità URI: risorsa esiste e lunghezza non nulla AccessibilitàURI: risorsa accessibile no autenticazione Coerenza cache URI: risorsa non modificata rispetto a quella in cache

Il metodo POST Permette di trasmettere delle informazioni dal client al server Aggiornare una risorsa esistente o fornire dati di ingresso Il server può rispondere positivamente in tre modi: 200 OK: dati ricevuti e sottomessi alla risorsa specificata; è stata data risposta 201 Created: dati ricevuti, la risorsa non esisteva ed è stata creata 204 No content: dati ricevuti e sottomessi alla risorsa specificata; non è stata data risposta

Il metodo PUT Serve per trasmettere delle informazioni dal client al server, creando o sostituendo la risorsa specificata Differenza tra PUT e POST: l URI di POST identifica la risorsa che gestirà l informazione inviata nel corpo della richiesta l URI di PUT identifica la risorsa inviata nel corpo della richiesta: è la risorsa che ci si aspetta di ottenere facendo un GET in seguito con lo stesso URI Non offre nessuna garanzia di controllo degli accessi o locking

Un metodo HTTP può essere sicuro: non altera lo stato della risorsa idempotente: l effetto di più richieste identiche è lo stesso di quello di una sola richiesta GET è sicuro ed idempotente HEAD è sicuro ed idempotente POST è NON sicuro e NON idempotente PUT è NON sicuro ed idempotente

URI: Universal Resource Identifier E una forma generale per individuare una risorsa in rete URL: Uniform Resource Locator (posizione ed indirizzo) URN: Uniform Resource Name (nome)

URL schema://nodo:porta/path?query#ancora http://www.zuccante.it/info/trasparenza/ index.asp#linkart1 può essere assoluto o relativo (relativo parte dalla parte path)

Gli HEADER HTTP general header (Data, Pragma...) request header (User-Agent, Referer...) response header (Server, Location...) entity header (Content-Type, Content-Length...) Formato nome:valore Content-Type: text/html User-Agent: Web-sniffer/1.0.36 (+http://web-sniffer.net/)

Il CODICE DI STATO della risposta è un numero di tre cifre di cui la prima indica la classe della risposta e le altre due cifre la risposta specifica: 1xx: Informational (messaggi informativi) 2xx: Success (la richiesta è stata soddisfatta) 3xx: Redirection (non c'è risposta immediata, ma la richiesta è sensata e viene detto come ottenere la risposta) 4xx: Client error (la richiesta non può essere soddisfatta perché sbagliata) 5xx: Server error (la richiesta non può essere soddisfatta per un problema interno del server)

I codici di stato maggiormente utilizzati sono: 200 OK. Il server ha fornito correttamente il contenuto nella sezione body. 301 Moved Permanently. La risorsa che abbiamo richiesto non è raggiungibile perché è stata spostata in modo permanente. 302 Found. La risorsa è raggiungibile con un altro URI indicato nel header Location. Di norma i browser eseguono la richiesta all'uri indicato in modo automatico senza interazione dell'utente. 400 Bad Request. La risorsa richiesta non è comprensibile al server. 401 Unauthorized. La risorsa richiede autenticazione dell utente. 403 Forbidden. Accesso vietato. 404 Not Found. La risorsa richiesta non è stata trovata e non se ne conosce l'ubicazione. Di solito avviene quando l'uri è stato indicato in modo incorretto, oppure è stato rimosso il contenuto dal server. 500 Internal Server Error. Il server non è in grado di rispondere alla richiesta per un suo problema interno. 505 HTTP Version Not Supported. La versione di http non è supportata.

HTTPS HTTPS (Hypertext Transfer Protocol over Secure Socket Layer) è il risultato dell'applicazione di un protocollo di crittografia asimmetrica al protocollo HTTP. Viene utilizzato per garantire trasferimenti riservati di dati nel web, in modo da impedire intercettazioni dei contenuti. Nel browser, l URL ha come schema https. La porta di default impiegata è la 443 In modo del tutto trasparente all utente, tra il protocollo TCP ed HTTP si interpone un livello di crittografia/autenticazione come SSL (Secure Socket Layer) o il TLS (Transport Layer Security).

HTTPS TLS è il successore di SSL Nell'utilizzo tipico di un browser, l'autenticazione TLS è unilaterale: solo il server è autenticato (il client conosce l'identità del server), ma non vice-versa (il client rimane anonimo e non autenticato). L'autenticazione del server è molto utile per il software di navigazione e per l'utente. Il browser valida il certificato del server controllando la firma digitale dei certificati del server controllando che questa sia valida e riconosciuta da una certificate authority conosciuta utilizzando una cifratura a chiave pubblica. Dopo questa autenticazione il browser indica una connessione sicura mostrando solitamente un lucchetto in un'icona in basso a destra. Questa autenticazione, però, non è sufficiente per garantire che il sito con cui ci si è collegati sia quello richiesto. Per esserne sicuri è necessario analizzare il contenuto del certificato rilasciato e controllarne la catena di certificazione. Solo le CA possono generare certificati validi con un'url incorporata in modo che il confronto fra l'url. Il protocollo TLS permette anche un'autenticazione bilaterale, tipicamente utilizzata in applicazioni aziendali, in cui entrambe le parti si autenticano in modo sicuro scambiandosi i relativi certificati. Questa autenticazione (definita Mutual authentication) richiede che anche il client possieda un proprio certificato digitale.

HTTPS