HTTP , Proxy, cache e CGI PDF

Title HTTP , Proxy, cache e CGI
Author ass eee
Course Reti di calcolatori
Institution Università degli Studi di Palermo
Pages 3
File Size 87.6 KB
File Type PDF
Total Downloads 61
Total Views 153

Summary

riassunti su HTTP , Proxy, cache e CGI...


Description

HTTP HTTP è un tipico esempio di protocollo client/server in cui  client: Browser o user agent richiede e riceve le pagine Web insieme a tutti i suoi componenti  server: Web server che invia le pagine e gli elementi della pagina da esso posseduti in risposta alle richieste Il protocollo HTTP usa TCP ed consiste nei seguenti 4 passi; 1. Il client inizia una connessione TCP (utilizzando una socket) verso il server sulla porta 80; 2. Il server accetta la connessione TCP dal client; 3. Vengono scambiati messaggi http request e http response tra il browser (client http) e il Web server (server http); 4. 4. La connessione TCP è chiusa; La connessione HTTP può essere di due tipi:  Connessione non persistente : per ogni connessione TCP viene inviato un singolo oggetto  Connessione persistente: più oggetti possono essere inviati su una singola connessione Vediamo con un esempio quali sono le differenze tra una connessione non persistente ed una connessione persistente. Si supponga che un client voglia accedere alla pagina costituita oltre che dalla pagina base home.html, da 10 immagini jpeg. Una connessione non persistente ha questo andamento: 1. Il processo client HTTP inizia una connessione TCP verso il server www.someSchool.edu sulla porta 80, associate alla connessione TCP ci saranno due socket una per il client e una per il server. 2. Il client HTTP, tramite la propria socket, invia al server un messaggio di richiesta http (“request message”) che include il percorso /someDepartment/home. Index 3. Il processo server HTTP riceve il request message attraverso la propria socket, recupera l'oggetto /someDepartment/home . index dalla memoria (centrale o di massa), lo incapsula in un messaggio di risposta HTTP formando il “response message” che viene inviato al client attraverso la socket. 4. Il processo server HTTP comunica a TCP di chiudere la connessione, essa comunque non termina finché non si è certi che il client abbia ricevuto integro il response message. 5. Il client HTTP riceve il response message e la connessione TCP termina. Il messaggio indica che l'oggetto incapsulato è un file HTML, il client estrae il file dal response message, lo esamina e trova i riferimenti ai 10 oggetti JPEG. 6. Vengono quindi ripetuti i primi quattro passi per ciascuno degli oggetti JPEG referenziati. Nelle connessioni persistenti il server lascia la connessione aperta dopo aver inviato la risposta, i messaggi successivi tra lo stesso client e server sono trasmessi sulla stessa connessione. Esistono due tipi di Connessioni persistenti: 1. Senza pipelining il client invia una nuova richiesta solo dopo avere ricevuto la risposta precedente 2. Con pipelining il client invia una richiesta appena incontra il riferimento ad un oggetto e effettua le richieste in maniera consecutiva

I Messaggi di HTTP sono sempre messaggi di testo in formato ASCII e sono di due tipi, di request, o di response Nei messaggi di request abbiamo Il metodo che può essere: 1. GET richiesta di un oggetto 2. POST invio di un form 3. HEAD invio della sola intestazione 4. PUT carica il file contenuto nel body nel path specificato dal campo URL 5. DELETE cancella il file specificato nel campo URL lasciare il corpo dell'oggetto fuori dalla risposta Vi sono anche informazioni come:  Nome host a cui si è chiesa la pagina  Il browser utilizzato  La lingua preferita  Il tipo di connessione persistente o non persistente.  Content-Length  Data di creazione  Expires: date  Last-Modified: date Nei messaggi di response abbiamo: La prima riga è la state line con la risposta della versione e dello stato de server. Alcuni esempi di stato sono:  200 OK Successo, oggetto richiesto più avanti nel messaggio  301 Moved Permanently L'oggetto richiesto è stato spostato. Il nuovo indirizzo è specificato più avanti (Location:)  400 Bad Request Richiesta incomprensibile per il server  404 Not Found Il documento non è stato trovato sul server  505 HTTP Version Not Supported versione richiesta dal protocollo HTTP non supportata dal se 1.2.

Cookies: mantenere lo “stato” Dato che HTTP è “stateless” non è possibile mantenere lo stato di un client. Per ovviare a questa mancanza molti dei più importanti siti web usano i cookie. Un cookie è un semplice file di testo che viene memorizzato sul computer dell’utente dal server web e che può essere letto o recuperato dal server stesso. Esso contiene delle informazioni che permette salvare informazioni dell’utente.

I server inviano i cookie nella risposta HTTP al client e si aspetta che i web browser salvino e inviino i cookie al server, ogni qualvolta si facciano richieste aggiuntive al web server Il cookie è composto da:  Una stringa di testo arbitraria,  Una data di scadenza (oltre la quale non deve essere considerato valido)  Un pattern per riconoscere i domini a cui rimandarlo. Il browser rimanderà il cookie, senza alcuna modifica, allegandolo a tutte le richieste HTTP che soddisfano il pattern, entro la data di scadenza. Il server può quindi scegliere di assegnare il cookie di nuovo, sovrascrivendo quello vecchio. 1.3 Proxy server: cache lato server(web cache) L'obiettivo del Proxy server è soddisfare le richieste dei client senza accedere al server di origine. Per utilizzare il web cache l'utente deve configurare il proxy server nel browser. Il client invia tutte le richieste al proxy che agisce in due modi:  Se l'oggetto richiesto è in cache: la cache restituisce l'oggetto  Se l'oggetto richiesto non è in cache: richiede l'oggetto al server origine e lo inserisce nella cache e lo inoltra al client

La cache quindi agisce come client rispetto ai server origine e come server rispetto ai client. Vediamo cosa succede se un browser sta richiedendo l’oggetto http://www.someschool.edu/campus.gif 1. Il browser stabilisce una connessione TCP con il proxy server e invia una richiesta HTTP per l'oggetto specificato. 2. Il proxy controlla la presenza di una copia dell'oggetto memorizzata localmente. a. Se l'oggetto è presente, il proxy lo inoltra all'interno di un messaggio di risposta HTTP al browser. b. Viceversa apre una connessione TCP verso il server, nel nostro esempio, www.someschool.edu. quindi, il proxy invia al server una richiesta http, ed il server invia al proxy l'oggetto all'interno di una risposta HTTP. 3. Quando il proxy riceve l'oggetto ne salva una copia nella propria memoria locale e ne inoltra un'altra copia al browser (sulla connessione TCP esistente tra il browser e il proxy) 1.4 GET condizionale: cache lato client L'obiettivo del GET condizionale è non inviare un oggetto se il client ne ha già una versione aggiornata in cache. Il client specifica la data della copia nella richiesta HTTP If-modified-since: Il server invia una risposta non contente l'oggetto se la copia in cache è aggiornata

2 Web Scripting e CGI I linguaggi Web Scripting utilizzati per creare siti web dinamici e interattivi, si possono dividere due principali categorie: 1.Web script lato server o Server Scripting  ASP (Active Server Pages) Tecnologia Microsoft  CGI (Common Gateway Interface)  PHP (Php Hypertext Preprocessor) molto simile a Perl e C.  Python  Node.js. 2.Web script script lato client o Browser Scripting  JavaScript  AJAX  JQuery Common Gateway Interface (CGI) Più che un linguaggio è uno standard per interfacciare applicazioni esterne con un information server. Le applicazioni che usano questo standard per comunicare con il server prendono il nome di programmi CGI. I programmi CGI e il server comunicano in quattro modi: 1. Attraverso variabili di ambiente di sistema 2. Attraverso comando di linea (usato per eseguire il programma CGI in una shell di sistema operativo) 3. Attraverso lo standard input (usato soprattutto con il metodo POST) 4. Attraverso lo standard output Il server deve “capire" che la richiesta non è di un semplice documento HTML ma di un programma CGI da eseguire. I programmi CGI vanno posizionati in un'apposita directory Il linguaggio usato per scrivere i programmi CGI deve essere:  compatibile con l'host e il sistema operativo  deve permettere la lettura dello standard input e delle variabili d'ambiente e la scrittura sullo standard output...


Similar Free PDFs