Il Protocollo HTTP e la programmazione di estensioni Web



Похожие документы
Tito Flagella - Il protocollo HTTP

Protocolli applicativi: FTP

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

Lezione 1 Introduzione

19. LA PROGRAMMAZIONE LATO SERVER

Reti di Telecomunicazione Lezione 7

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014

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

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

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

Sicurezza delle applicazioni web: protocollo HTTP

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

Siti interattivi e dinamici. in poche pagine

Il Web Server e il protocollo HTTP

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

OSOR. Applicazioni di Rete

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

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

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

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

Lezione n 1! Introduzione"

Reti di Telecomunicazione Lezione 6

Protocolli per il Web. Impianti Informatici. Protocolli applicativi

Reti di Calcolatori. Il Livello delle Applicazioni

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

appunti delle lezioni Architetture client/server: applicazioni client

BACKUP APPLIANCE. User guide Rev 1.0

Come funziona internet

Architetture Web Protocolli di Comunicazione

Componenti Web: client-side e server-side

Server-side Programming: Java servlets Parte II

Obiettivo dell esercitazione

HTTP adaptation layer per generico protocollo di scambio dati

Stack protocolli TCP/IP

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

Il linguaggio HTML - Parte 3

Introduzione alle applicazioni di rete

Protocollo HTTP. Alessandro Sorato

DNS-Tunneling. Reference to. Ettore di Giacinto Luca Montunato

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

Protocollo di metadata harvesting OAI-PMH Lavoro pratico 2

Applicazioni Web: meccanismi per il passaggio di informazioni tramite HTTP Corso di Applicazioni Telematiche

Casalini Crypto. Documento di protocollo tecnico VRS 2.1

Lezione 6: Form 27/04/2012

Corso di Informatica Modulo T3 B1 Programmazione web

L architettura MVC (Model- View-Controller) Introduzione

Documentazione API web v 1.0

AdvSelf Italia Srl. Manuale Gateway HTTP AdvSelf Italia srl - All Rights Reserved

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/ Lato client

Il World Wide Web. Il Servizio World Wide Web (WWW) WWW WWW WWW WWW. Storia WWW: obbiettivi WWW: tecnologie Le Applicazioni Scenari Futuri.

Manuale per l utilizzo dell applicazione Client per il controllo remoto di apparecchiature da laboratorio

Le Reti Informatiche

PROTOCOLLI APPLICATIVI PER INTERNET

Architettura client-server

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

Do-Dots Protocollo di comunicazione

GUIDA ALL UTILIZZO DEL PORTALE DELLA RETE DEI COMUNI OGLIO PO

il trasferimento di file

Programmazione dei socket con TCP #2

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1)

Registratori di Cassa

Integrazione InfiniteCRM - MailUp

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

Client - Server. Client Web: il BROWSER

LABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO

Sistema Gestionale FIPRO. Dott. Enea Belloni Ing. Andrea Montagnani

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

Approfondimento di Marco Mulas

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

Esercitazione sulle libpq - libreria C per PostgreSQL

Il linguaggio HTML - Parte 4

ARP (Address Resolution Protocol)

SWIM v2 Design Document

WEBALIZER GUIDA ALLA LETTURA DELLE STATISTICHE

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

ProgettoSMS. Manuale Gateway FTP Text

Configurazione client di posta elettronica per il nuovo servizio . Parametri per la Configurazione dei client di posta elettronica

SMS API. Documentazione Tecnica YouSMS HTTP API. YouSMS Evet Limited

Corso basi di dati Introduzione alle ASP

Informatica per la comunicazione" - lezione 13 -

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

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

File, Modifica, Visualizza, Strumenti, Messaggio

Транскрипт:

Il Protocollo HTTP e la programmazione di estensioni Web 1

Il protocollo HTTP È il protocollo standard inizialmente ramite il quale i server Web rispondono alle richieste dei client (prevalentemente browser); È basato su un modello richiesta/risposta Versione Attuale: HTTP/1.1 (RFC 2616) http://www.w3.org/protocols/rfc2616/rfc26 16.txt 2

Il protocollo HTTP: struttura di una una linea iniziale: tipo della richiesta (metodo), URI, protocol version Request headers (opzionali) Una linea vuota I dati della Richiesta (opzionale) richiesta 3

Esempio di Richiesta GET /index.html HTTP/1.0 User-agent: Mozilla Accept: text/html, text/plain, image/jpeg 4

Il protocollo HTTP: principali metodi della richiesta GET--richiede il documento specificato nel URI HEAD-- richiede solo l informazione header relativa al documento POST--richiede che il server accetti alcuni dati dal browser, come l input delle form html per un programma CGI PUT--sostituisce il contenuto di un documento del server con dati in arrivo dal client 5

Header della Richiesta Accept: i tipi di file che il browser può accettare Authorization: usato se il browser vuole autenticarsi con il server; contiene informazioni credenziali, come username e password. User-agent: il nome e la versione del browser Referer: la URL del documento che conteneva il link seguito dall utente. Host: l indirizzo IP e la porta della risorsa richiesta 6

Dati della Richiesta In caso di POST o PUT, il cliente invierà i dati dopo gli header, seguiti da una linea vuota In caso di GET or HEAD non ci sono dati da spedire 7

Risposta del Server La risposta include: versione del protocollo HTTP, codice di stato e reason phrase Header della Risposta Dati della Risposta 8

Esempio di Risposta HTTP HTTP/1.0 200 OK Server: Netscape Enterprise Server/3.0 Content-type: text/html Content-length: 76 <HTML> <HEAD><TITLE>Hello World</Title></HEAD> <BODY>Hello World</BODY> </HTML> 9

Codice di Stato Si tratta di un codice di tre cifre Sono classificati in cinque categorie: 200-299 successo 300-399 ridirezione 400-499 errore sul lato client 500-599 errore sul lato server 10

Esempi di Stato HTTP 200: OK; operazione completata con successo 302: ridirezione a una nuova URL; la URL originale è stata spostata; non si tratta di un errore, i browser compatibili cercheranno la nuova pagina 304: usa una copia locale; i browser compatibili mandano una informazione su "last-modified" della copia della pagina in cache. Il server può rispondere con il codice 304 invece di mandare di nuovo la pagina 11

Esempi di Stato HTTP (2) 401: non autorizzato. L utente ha richiesto un documento ma non ha fornito uno username o una password validi 403: Vietato, l accesso alla URL è vietato 404: Non trovato; il documento non è disponibile sul server 500: Server error; si è verificato un errore interno del server 12

Header della Risposta Contiene informazioni circa il server e i dati della risposta Gli header più comuni sono: Server: nome e versione del server web Date: la data corrente (Greenwich Mean Time) Last-modified: la data di ultima modifica del documento richiesto Expires: la data di scadenza del documento Content-length: dimensione in byte dei dati che seguono Content-type: il tipo MIME dei dati che seguono WWW-authenticate: usato durante l autenticazione, include informazioni necessarie per l accesso 13

Dati relativi alla Risposta Il server manda una linea vuota dopo gli header Tutto ciò che segue costituisce i dati relativi alla risposta Può trattarsi di un file html, o di qualunque altro tipo di file, anche dati binari 14

L HTTP (Web) Server Client side Server side Web browser 1 HTTP Web server Web browser n Files 15

Un server Web implementa HTTP sul lato server Accetta connessioni HTTP dai client, e ne riceve la richiesta Localizza le risorse specificate nella URL contenuta nell header della richiesta Accede alle risorse usando il metodo richiesto 16

Un server Web implementa HTTP - lato server (2) Costruisce un prologo di risposta HTTP contenente informazioni sullo stato Costruisce la risposta, contenente il prologo, gli header e i dati relativi alla risorsa richiesta Invia la risposta al cliente Chiude la connessione con il cliente (può usare keepalive) 17

Altrimenti i server potrebbero solo restituire il contenuto di un file Necessarie per: Estensioni Web servire l informazione dinamicamente monitorare/trasformare l informazione in transito accedere a Database 18

Classificazione delle Estensioni Web Dal punto di vista del programmatore Programming centric Html centric Dal punto di vista dello standard Standardizzazione dei meccanismi di comunicazione tra Server Web e applicazione esterna; Standardizzazione delle API di programmazione 19

Classificazione delle Estensioni Web API Standard Comunicazioni Standard Programming centric Servlet CGI Html-centric JSP 20

Common Gateway Interface Noto come CGI, storicamente il primo meccanismo per la realizzazione di estensioni Web. Il CGI è uno standard tramite cui un server Web può passare una richiesta http ad un programma esterno e ricevere come risposta i dati da restituire al cliente. 21

CGI (1) Processo Tcl Perl Codice Utente CGI Processo Web server Qualunque eseguibile HTTP Web browser client 22

CGI (2) I programmi esterni girano in processi separati Causa di problemi di performance (specialmente se bisogna supportare molte richieste simultanee) programming centric: e un programma (C, perl, ) che produce l HTML come output L accesso ai dati avviene attraverso variabili di ambiente o standard input 23

CGI (3) Vantaggi portabilità semplicità del modello Svantaggi performance Completa mancanza di stato 24

Ciclo di vita di un CGI (1) Il server invoca il programma specificato nella URL e gli passa i dati di input contenuti nel messaggio di richiesta il programma eredita informazioni di stato sul server, sul client e sulla richiesta tramite: var di ambiente argomenti da linea di comando standard input 25

Ciclo di vita di un CGI (2) il programma processa i dati di input Il programma genera un messaggio di risposta in html sullo standard output il server intercetta il messaggio di risposta e lo spedisce al cliente 26

Variabili di ambiente Sono raggruppate in 5 categorie: General information Input information Client information Server information HTTP information 27

URL Applicative Il server distingue una risorsa statica da un applicazione in due possibili modi: estensione (es:.cgi) un programma cgi puo essere messo ovunque nel document s tree del server nella url e indicata una directory registrata per contenere cgi, esempio: http://web.server.com/cgi-bin/feedback Si tratta di meccanismi attivabili/configurabili sul Server Web 28

URL Applicative Una URL Applicativa è tipicamente suddivisa in 2 parti: [App path URL]?[query string] La App path URL identifica il nome dellàapplicazione da attivare la query string, opzionale, può contenere eventuali parametri da passare al programma 29

Codifica dei parametri di input Si possono compattare più parametri nella query string usando una codifica standard: separare i parametri con & sostituire i blank con + Sottoporre ad escape (%xx) i caratteri speciali esistono utility per codifica-decodifica (Es; perl http://www.bio.cam.ac.uk/web/form.html) 30

La Variabile d ambiente QUERY_STRING E` importante perché permette allàapplicazione di accedere al dato originale inviato come query string dal browser al server Web. 31

Predisposizione dei parametri da client Statica: parametri introdotti staticamente in html: http://host.dominio/cgibin/env.pl?user=rossi&password=secret Dinamica: parametri gestiti dinamicamente da una form html 32

Uso delle Form in Html Le form sono il meccanismo usato in html per l interazione con l utente Si occupano di raccogliere input dall Utente e inviarlo opportunamente codificato al Web Server usando il metodo get, i dati viaggiano come parte della query string della URL, vengono passati al CGI come var. d ambiente QUERY_STRING usando il metodo post, viaggiano come dati della richiesta, vengono passati al CGI come standard input 33

Uso delle Form Html (2) Le Form sono introdotte dal tag <form> Oltre a html normale possono contenere i seguenti tag: <input> definisce text entry fields, checkboxes, radio buttons o pushbuttons <select> definisce dropdown menus e selection box <textarea> definisce campi text-entry su più linee la Form può avere i seguenti attributi: action, la URL del CGI (o altra estensione) cui inviare i dati method, il metodo HTTP usato per la sottomissione dei dati (get o post) 34

Esempi di passaggio dei parametri a CGI tramite form Html Vedi: http://projects.cli.di.unipi.it/isi/examples/cgi/1.html http://projects.cli.di.unipi.it/isi/examples/cgi/forms.html http://projects.cli.di.unipi.it/isi/examples/cgi/textareas.ht ml 35

Riferimenti http://hoohoo.ncsa.uiuc.edu/cgi/ 36