IL PROTOCOLLO HTTP Puppo Marco.

Slides:



Advertisements
Presentazioni simili
Informazioni di base sul funzionamento
Advertisements

Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
3 ottobre 2000Consiglio Nazionale delle Ricerche Progetto Biblio MIME 1 Consiglio Nazionale delle Ricerche Area di Ricerca di Bologna Istituto per le Applicazioni.
1 Tutto su liceoclassicojesi.it 1° Incontro sulla gestione di liceoclassicojesi.it.
Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
Corso di Fondamenti di Informatica
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
Consumare Web Service Andrea Saltarello
PHP.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Web Services.
Java Enterprise Edition (JEE)
Tecnologie di Sviluppo per il Web
Frontespizio Economia Monetaria Anno Accademico
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 ad HTTP Fabio Vitali. WWW Fabio Vitali2 Introduzione Oggi esaminiamo in breve: HTTP (HyperText Transfer Protocol) Un protocollo stateless.
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Modello del sistema di posta Elettronica
Architettura del World Wide Web
Sicurezza su Reti /2007 Commessa 1 : Protocollo di pagamento online utilizzato nella commessa.
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
Laboratorio di Informatica
23 novembre 2000IAT-CNR Progetto Biblio MIME 1 Consiglio Nazionale delle Ricerche Area di Ricerca di Bologna Istituto per le Applicazioni Telematiche di.
Reti di Calcolatori IL LIVELLO APPLICAZIONI WEB e HTTP.
4 Cosa è una rete? ã Punto di vista logico: sistema di dati ed utenti distribuito ã Punto di vista fisico: insieme di hardware, collegamenti, e protocolli.
APPLICAZIONI WEB In questo corso impareremo a scrivere un'applicazione web (WA) Marco Barbato - Corso di Applicazioni Web – A.A
Introduzione alle basi di dati
Portale Capacità STOGIT
Corso di Informatica per Giurisprudenza Lezione 7
> Remote Authentication Dial In User Service
Progettazione multimediale
Guida IIS 6 A cura di Nicola Del Re.
Test Reti Informatiche A cura di Gaetano Vergara Se clicchi sulla risposta GIUSTA passi alla domanda successiva Se clicchi sulla risposta ERRATA passi.
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
ISOIVA (LOCALE) TO ISOIVA (WEB) RIPARTIZIONE INFORMATICA UFFICIO APPLICATIVI AMMINISTRATIVI 13/04/2011 UNIVERSITÀ DEGLI STUDI DI FERRARA 1.
Protocollo informatico: interoperabilità e PEC
QUIZ – PATENTE EUROPEA – ESAME WORD
Elaborazioni server-side: dalle CGI al PHP
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
Creare pagine web Xhtlm. Struttura di una pagina.
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 41 ALTRO ESEMPIO ANCORA Progettare il comando di creazione di una tabella di pubblicazioni scientifiche. Come chiave usare un numero.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
Amministrazione della rete: web server Apache
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
IL PROTOCOLLO HTTP.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 - Protocolli del Web Ernesto Damiani Lezione 3 – Esempi HTTP.
METODI DI RAPPRESENTAZIONE TECNICA
Lezione 8.
FTP File Transfer Protocol
Creato da Riccardo Nuzzone
A.P. cat. B - 1 Per chi vuole: Libro di testo D.P. Curtis, K. Foley, K. Sen, C. Morin Informatica di base 2° edizione Mc Graw-Hill Companies.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Internet e HTML Diffusione di informazioni mediante la rete Internet.
HTML 4.01 Apogeo. I tag di base Capitolo 1 I tag SintassiEsempi:
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 -Protocolli del Web Ernesto Damiani Lezione 2 – Complementi.
WWW Introduzione ad HTTP Fabio Vitali. WWW A seguire: HTTP2/52 Introduzione Oggi esaminiamo in breve: HTTP (HyperText Transfer Protocol) An application-level.
URI e HTTP Fabio Vitali.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 4 -Protocolli del Web Ernesto Damiani Lezione 1 – World Wide.
Introduzione ad HTTP Fabio Vitali.
Reti di calcolatori e sicurezza “Configurare il web-server Apache” a cura di Luca Sozio.
Servizi Internet Claudia Raibulet
Transcript della presentazione:

IL PROTOCOLLO HTTP Puppo Marco

Introduzione HTTP è l’acronimo di Hypertext Transfert Protocol Stateless protocol 3 versioni: - HTTP /0.9 (1990) - HTTP /1.0 (1996) RFC1945 - HTTP /1.1 (1999) RFC2616

Introduzione TCP/IP Messaggi MIME (Multipurpose Internet Mail Extensions) URL;URI;URN INTERNET SERVER CLIENT UTENTE

Glossario Client un’applicazione che stabilisce una connessione HTTP con lo scopo di inviare richieste Server un’applicazione che accetta connessioni HTTP e genera risposte User agent Quel particolare client che inizia una richiesta HTTP (un browser)

Glossario Risorsa qualsiasi tipo di dato (pagina web;immagini;…) Origin server il server che possiede fisicamente la risorsa richiesta (è l’ultimo della catena) Proxy applicazione intermediaria che agisce sia da client che da server.

Glossario Gateway applicazione che agisce da intermediario per qualche altro server. A differenza del proxy si comporta come se fosse l’origin server MIME (Multipurpose Internet Mail Extensions) protocollo che permette alle e-mail di contenere vari formati di comunicazione (testo;immagini;…)

Comunicazione 4 fasi Connessione il client crea una connessione TCP/IP con il server usando il dominio (o l’IP) ed il numero della porta. Di default porta 80 Richiesta documento il client invia la richiesta di un documento mediante una riga ASCII terminata da CR-LF

Comunicazione Risposta inviata dal server è in forma HTML contenente il documento richiesto Disconnessione il server inviata la risorsa si disconnette. Anche il client può disconnettersi senza però creare condizioni d’errore al server

Proxy di cache

Proxy di cache

Connessione HTTP

Method URI Version CrLf La richiesta La richiesta è un messaggio MIME. La richiesta semplice (HTTP 0.9) è: GET URI CrLf La richiesta completa (HTTP 1.0 e succ) è: Method URI Version CrLf [Header]* CrLf [Body]

La richiesta La richiesta semplice è ancora obbligatoria La presenza di Version consente al server di capire se può creare la risposta o se deve aspettare altri dati

La richiesta Method rappresenta la richiesta del client al server Method URI Version CrLf [Header]* CrLf [Body] Dove: Method rappresenta la richiesta del client al server URI è l’identificativo della risorsa locale Version è HTTP/1.0 o 1.1 Header -> linee RFC822 Body ->messaggio MIME

Esempio Get 7beta.html HTTP/1.1 Referer: http://www.alpha.com/alpha.html Connectio: Keep-Alive User-Agent:Mozilla/4.16 (Macinthosh;1;PPC) Host: www.alpha.com :80 Accept: image/gif, image/jpeg, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8

Metodi 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. Alcuni metodi: GET HEAD POST PUT

Get Il più importante (ed unico in v. 0.9) metodo di HTTP è GET, che 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. GET è sicuro ed idempotente.

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.

Post Il metodo POST serve per trasmettere delle informazioni dal client al server, ma senza la creazione di una nuova risorsa. POST non è sicuro né idempotente, e viene usato per esempio per passare i dati di una form HTML ad un’applicazione CGI sul server. Il server può rispondere positivamente in tre modi: 200 Ok: dati ricevuti e sottomessi alla risorsa specificata. E’ stata data risposta 201 Created: dati ricevuti, la risorsa non esisteva ed è stata creata 204 No content: dati ricevuti e sottomossi alla risorsa specificata. Non è stata data risposta.

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. PUT è idempotente ma non sicuro, e comunque non offre nessuna garanzia di controllo degli accessi o locking.

Gli Header Gli header sono righe RFC822 che specificano la caratteristiche: Generali della trasmissione Dell’entità trasmessa Della richiesta effettuata Della risposta generata

Header generali Possono essere applicati alla richiesta e alla risposta ma non necessariamente al risorsa trasmessa Date: data ed ora della trasmissione MIME-Version: la versione MIME usata per la trasmissione Transfer-Encoding: il tipo di formato di codifica usato per la trasmissione Cache-Control: il tipo di meccanismo di caching richiesto o suggerito per la risorsa Connection: il tipo di connessione da usare (tenere attiva, chiudere dopo la risposta, ecc. Via: usato da proxy e gateway.

Header dell’entità Danno informazioni sul body o sulla risorsa specificata Content-Type: il tipo MIME dell’entità acclusa. Questo header è obbligatorio in ogni messaggio che abbia un body. Content-Length: la lunghezza in byte del body. Obbligatorio, soprattutto se la connessione è persistente.

Header dell’entità Content-Base, Content-Encoding, Content-Language, Content-Location, Content-MD5, Content-Range: l’URL di base, la codifica, il linguaggio, l’URL della risorsa specifica. MD5 e il range richiesto della risorsa. Expires: una data dopo la quale la risorsa è considerata non più valida (cancellata dalla cache e ricaricata) Last-Modified: data e ora dell’ultima modifica. Possibilmente obbligatorio, serve a determinare la validità della copia posseduta

Header della richiesta Posti dal client per specificare informazioni sulla richiesta User-Agent: una stringa che descrive il client che origina la richiesta; tipo, versione e sistema operativo del client, tipicamente. Referer: l’URL della pagina mostrata all’utente mentre richiede il nuovo URL. Se l’URL è richiesto con altri metodi che non l’attraversamento di un link es. digitando l'URL o selezionandolo dai bookmark, Referer deve essere assente. Referer viene usato per controllo sui percorsi degli utenti, utili nel caso di user profiling (che gusti ha il mio utente? Lo capisco dalla pagina da cui proviene) o pubblicità (il mio utente ha cliccato su un banner. A chi devo pagare i diritti?)

Header della richiesta Host: obbligatorio in HTTP 1.1. Contiene dominio e porta a cui viene fatta la connessione. L’URI manda l’indicazione del nome o della porta acceduta. Se un server ha più siti Web, l’Host permette al server di distinguere il sito From: indirizzo e-mail del richiedente. Necessita dell’approvazione dell’utente per l’inserimento di questo header nella richiesta ->

Header della richiesta Range: il range della richiesta. Poco usato Accept, Accept-Charset, Accept-Encoding, Accept-Language: Implementazione della negoziazione del formato, per quel che riguarda tipo MIME, codice caratteri, codifica MIME, linguaggio umano. Il client specifica cosa è in grado di accettare, e il server propone il match migliore. If-Modified-Since,If-Unmodified-Since: solo se la condizione è vera. A pre-condizione valida, ritorna “non modificato” altrimenti GET normale. Authorization, Proxy-Authorization: una stringa di autorizzazione per l’accesso alla risorsa richiesta.

Esempio di risposta Version status-code reason-phrase CrLf [Header]* 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>

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).

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)

Header della risposta Posti dal server per dare informazioni sulla risorsa e su se stesso al client Server: stringa che descrive il server: tipo;S.O.;versione;ecc. WWW-Authenticate:include un codice di partenza (challenge) con cui il meccanismo di autenticazione deve fare match in caso di una risposta 401 (unauthorized). Il client genererà con questo valore un valore di autorizzazione posto nell’header Authorization della prossima richiesta. Accept-ranges: specifica che tipo di range può accettare (valori previsti: byte e nome).

Cos’è CGI La Common Gateway Interface (CGI) è una semplice ‘interfaccia’ per eseguire programmi esterni, software o gateway, sotto un server HTTP, indipendentemente dalla piattaforma.

CGI Il client, tramite il protocollo HTTP, invia al server la FORM compilata con la richiesta di eseguire un programma CGI con i dati passati come parametri d'ingresso. Una volta arrivato al server remoto il contenuto della FORM questo, attraverso l'interfaccia CGI, richiama il programma CGI passandogli i dati inviati dal client. Eseguite le operazioni necessarie il programma CGI può interagire con un database contenuto sul disco del server dopodichè rimanda al server dei dati elaborati, sempre facendo uso dell'interfaccia CGI, per rispondere al client, ad esmpio si può comunicare al client se l'operazione è andata a buon fine o meno. Il server invia al client i dati elaborati dal programma CGI tramite il protocollo HTTP.

CGI L'interfaccia CGI definisce quindi soltanto il metodo con cui i dati ricevuti da una FORM sono passati dal server al programma CGI e viceversa; si tratta quindi di un problema di I/O. Il programma CGI, che è un programma eseguibile, può essere scritto in un qualsiasi linguaggio purché sia in grado di interpretare i dati che arrivano dal server HTTP.

CGI Uno script CGI viene invocato tramite un GET o un POST ad una URL che faccia riferimento al CGI stesso. C'è però un problema: il server deve sapere che la URL ricevuta dal client punta ad un CGI e non ad un documento HTML, in quanto la pagina HTML è inviata al client per la sua visualizzazione mentre lo script CGI deve essere eseguito da una shell di sistema.

CGI Normalmente un CGI viene usato come action di una FORM. I programmi CGI ed il server comunicano principalmente attraverso quattro modi: Variabili d'ambiente di sistema. Comando di linea (usato per eseguire il programma CGI in una shell di sistema operativo). Standard input (usato soprattutto con il metodo POST). Standard output.

CGI Il risultato di un CGI viene passato al server tramite lo standard output Il server provvederà così ad impacchettarlo in un messaggio HTTP ed a rinviarlo al client In risposta un programma CGI puù produrre: Un file HTML Un’ immagine …

Schemi di Autenticazione Semplice Challenge Response Il client confeziona la Response Due tipi: Basic Access Authentication Digest Access Authentication

Schemi di Autenticazione Lo schema prescelto (Basic/Digest) dal server HTTP viene restituito al client HTTP in un messaggio HTTP con status-code = 401 (Unauthorized). Il messaggio restituito deve contenere nell'intestazione il campo WWW-Authenticate. HTTP/1.1 401 Unauthorized … WWW-Authenticate: Basic realm=”Internet Security” Corpo messaggio di risposta

Basic Authentication Scheme Lo schema prevede che l’utente digiti Username e password come specificato dal Challenge Realm. Questo valore non viene allegato alla nuova HTTP Request del client.Tale valore viene utilizzato dal server solo per ricordare all’utente che il documento è associato ad un dominio contraddistinto dal valore alfanumerico specificato nel Challenge Realm

Basic Authentication Scheme La seconda richiesta del client viena considerata valida sa la coppia Username/Password è valida. Le credenziali inviate dal client devono essere inserite nell’intestazione del messaggio HTTP Request usando il campo Authorization Get /URL HTTP/1.1 … Authorization: Basic QWxhZGR…

Basic Authentication Scheme Credenziali= “Aladin:open sesame” (multiplo di 3) Codifica ASCII= 01000001 01101100 01100001 … Gruppi di 6 bit = 010000 010110 110001 100001 … Codifica Radix-64= Q W x h …

Vulnerabilità del Basic Trasmissioni in chiaro delle credenziali Per risorse poco meno che pubbliche Username e Passwod memorizzate in un database sul server HTTP Facile sostituzione del server da parte di terzi

Digest Authentication Scheme Risolve i problemi legati al controllo degli accessi degl’utenti. Prevede una preliminare fase di autenticazione Come nel Basic viene attivato dal server inviando al client un Challenge dentro il messaggio di HTTP Response con status-code=401

Digest Authentication Scheme WWW-Authenticate è molto più complesso: HTTP/1.1 401 Unauthorized ... WWW-Authenticate: Digest realm="testrealm@host.com", qop="auth,auth-int", nonce="dcd98b710…“ opaque="5ccc069c4…" Corpo messaggio di risposta

Digest Authentication Scheme Dove: La risorsa richiesta è http://www.nowhere.org/dir/index.html. Il parametro realm ha lo stesso significato del parametro omonimo presente nello schema Basic. Il parametro qop stabilisce invece la "quality of protection". I valori previsti sono specificati nella RFC 2069 (auth, e auth-int). Il parametro opaque viene prodotto dal server HTTP e deve essere restituito inalterato dal client HTTP in tutte le richieste successive che prevedono l'accesso alla stessa risorsa (specificata dal proprio URI). L'algoritmo di digest previsto, se non diversamente specificato è l'algoritmo MD5. Il parametro nonce riporta la vera e propria sfida prodotta dal server HTTP. Il contenuto della sfida è dipendente dalla implementazione del server HTTP. Raccomandazione generale è comunque utilizzare la seguente struttura (codificata radix-64):

Digest Authentication Scheme Il client aprirà una finestra di dialogo dove l’utente inserirà Username e Password utilizzate poi per generare la risposta e richiedere la risorsa. GET /url HTTP/1.1 ... Authorization: Digest username="Mufasa", realm="testrealm@host.com", nonce="dcd98b710…", uri="/dir/index.html", qop=auth, nc=00000001, cnonce="0a4f113b", response="6629fae4…", opaque="5ccc069c4…"

Digest Authentication Scheme Dove: La nuova richiesta è rivolta ad acquisire la risorsa contrassegnata da http://www.nowhere.org/dir/index.html. Il parametro username è l'esatta replica dell'informazione digitata dall'utente. Il parametro realm è l'esatta replica di quanto ricevuto nel precedente messaggio HTTP Response. Il parametro nonce è l'esatta replica della sfida ricevuta nel precedente messaggio HTTP Response. Viene inserita nella richiesta dal client HTTP per consentire una elementare verifica dei dati ricevuti da parte del server HTTP prima di procedere alla validazione delle credenziali utente. In nessun modo il server HTTP deve basarsi sul valore del parametro nonce restituito dal client HTTP per validare le credenziali ricevute.

Digest Authentication Scheme Il parametro uri indica la risorsa richiesta nella Request Line (prima riga) della HTTP Request inviata dal client HTTP. Il parametro qop riporta la "quality of protection" scelta dal client HTTP per completare lo schema di autenticazione. Il parametro opache è l'esatta replica di quanto ricevuto nel precedente messaggio HTTP Response. Il parametro nc indica il numero progressivo di HTTP Request prodotte utilizzando lo stesso nonce. Il parametro cnonce riporta un valore casuale prodotto dal client HTTP al fine di evitare ogni forma di attacco di tipo "chosen plaintext" e/o fornire un rudimentale meccanismo per una mutua autenticazione. Il parametro response riporta il digest prodotto dal client HTTP. Se non diversamente specificato l'algoritmo utilizzato per produrre il digest è l'algoritmo MD5.

Vulnerabilità del Digest Tranne la Password, tutto in chiaro Facile per l’hacker violare il datebase del server e sostituirsi all’utente Il response consente all’hacker (con lo snooping della Request) di richiedere lo stesso documento richiesto dall’utente. Lo si può evitare impostando il server ad accettare una sola richiesta con lo stesso nc Man in the middle: inserendosi tra client e server si può modificare l’intestazione della risposta del server in Basic acquisendo facilmente User e Password oltre che intercettare tutti i dati in transito

Considerazioni Attraverso il campo server si riesce a risalire alle caratteristiche di quest’ultimo e quindi ai suoi punti deboli From;User-Agent;Accept-Language mettono in discussione la sicurezza dell’host Potersi intrufolare in un proxy dotato di cache permette di risalire a tutte le connessioni Per evitare ciò è stato introdotto il Secure HyperText Transfer Protocol (S-HTTP)

Difetti dell’HTTP HTTP e TCP insieme sono inefficienti. Essendo Stateless, è semplice e leggero, ma non garantisce una connessione stabile

Bibliografia http://hoohoo.ncsa.uiuc.edu/cgi/mailtocgi.html Building internet firewall – Zwicky; Cooper; Chapman www.dia.unisa.it HTTP - Hypertext Transfer Protocol Overview