Laboratorio
Internet
Risposte terza verifica - a.a. 2008-2009
Prima parte
- l'HTML è una
sintassi di evidenziazione, che descrive il modo con un Browser web
dovrebbe visualizzare le pagine ricevute.
- il CSS opera
congiuntamente all'HTML, e viene da questo referenziato. Quindi, l'HTML
viene relegato al solo scopo di indicare delle categorie di
visualizzazione, dopodiché la resa grafica effettiva della pagina viene
descritta in modo esatto mediante l'uso delle regole espresse nel
foglio CSS, descritte dalla sintassi omonima
- l'ABNF è una
metasintassi, ossia una sintassi che serve
a descrivere una diversa sintassi, ed è usata ad esempio per descrive i
possibili costrutti con cui sono espressi i messaggi HTTP
- un elemento HTML <a></a>
serve a referenziare una diversa URI del web, che può essere invocata a
partire dalla pagina che contiene l'elemento <a>
- Accept indica i
Media Type che il browser è disposto ad accettare per gli oggetti
inviati in risposta alla sua
richiesta
- Accept-encoding
indica i tipi di codifica (ad es. in formato compresso) che il browser
è disposto ad accettare come codifica degli oggetti inviati in risposta
- Accept-charset indica il set di
caratteri che il browser è disposto ad accettare nelle pagine ricevute
in risposta
- Referer indica la
URI che il browser stava visualizzando al momento in cui è stata fatta
la richiesta che contiene l'header Referer
- il Browser include nelle richieste una intestazione di tipo IfModifiedSince, in cui
cita la data nella quale ha ricevuto la copia
dell'oggetto di cui sta facendo richiesta, ed in base a questo valore,
il server giudica se la sua versione dello stesso oggetto è più recente
o no. Nel secondo caso, anziché inviare l'oggetto richiesto, risponde
con una Status Line con
codice 304 NotModified, che
indica al browser
di mostrare la propria copia locale
- se configurato opportunamente per la URI di cui eseguire la
redirezione, il server web anziché inviare l'oggetto, risponde con una
Status Line con codice 30x Moved,
ed indica nell'header Location
della
risposta, la nuova URI dove il browser potrà ri-trovare la risorsa
richiesta.
- Le connessioni persistenti consentono ad un browser che invia
diverse richieste in sequenza verso lo stesso server, di non aprire
ogni volta una diversa connessione TCP, ma di continuare ad usare
quella già aperta per le richieste precedenti. La modalità pipeline
consiste nell'inviare nuove richieste senza dover attendere la
ricezione delle risposte alle richieste già inviate in precedenza
- nella autenticazione Basic le credenziali vengono inviate in
chiaro, e solo lievemente offuscate mediante una codifica base64. Nella
autenticazione Digest invece, le credenziali son inviate sotto forma di
hash di una sfida ricevuta, concatenata con dei nonce, concatenata con
il segreto condiviso
- Nel caso in cui l'intestazione Content-Type
identifichi un
oggetto che il browser non
può visualizzare direttamente (come
sarebbero invece i documenti html, css, javascript...), viene invocata
una helper application
esterna
(as es, un visualizzatore di files pdf) che
è stata registrata (nel browser, o nel sistema operativo) a tale scopo,
oppure un plugin (come as es il player Flash) che visualizza l'oggetto
incorporandolo nel browser. In particolare, un bytecode Java viene
eseguito da una java virtual machine
in forma di
plugin
- il parametro action
permette di individuale la URI da eseguire in corrispondenza della form
che contiene il parametro action
- il parametro method
permette di individuare la modalità con cui viene invocato il CGI, e
che può essere GET e POST. Nel primo caso, i valori dei controlli sono
passati nella componente query string
della URI, mentre nel secondo, nel Body
della richiesta HTTP.
- ho risposto nella domanda precedente
- il server HTTP inizializza una serie di variabili di ambiente, a
partire dagli header contenuti nella richiesta, ed in base ad altre sue
informazioni. In particolare, nella variabile di ambiente
QUERY_STRING è indicata appunto quella ricevuta dal browser. Inoltre,
il body della richiesta HTTP
viene ricopiato sullo standard input del
CGI.
Quindi, il CGI accede sia alle variabili di ambiente, che al proprio
standard input.
- il CGI scrive il contenuto della pagina di risposta sul suo
standard output, che il server web ricopia nel body della risposta HTTP.
- l'HTTP è stateless, ossia tratta ogni richiesta
indipendentemente,
anche se proveniente dallo stesso browser, immediatamente dopo la
precedente. Il meccanismo dei cookie permette al server di memorizzare
presso il browser una informazione di stato che, allegata alle
richieste successive, permette alle stesse di essere riconosciute dal
sever (o meglio, da un CGI che ne faccia uso) come facenti parte di una
medesima sessione.
- sia il CMS che il Wiki che il Blog sono realizzati mediante CGI.
Mentre il CMS è un generico sistema di gestione dei contenuti,
orientato
al lavoro ed alla redazione collaborativa di un sito, il wiki è
particolarmente orientato alla facilità di modifica delle pagine, ed
alla loro manutenzione, ad esempio permettendo di invertire la
sequenza delle modifiche fatte; il Blog infine, è orientato alla
redazione da parte di un unico individuo.
- un feed RSS è un documento XML che descrive i contenuti di uno
specifico canale, fornendo
per lo stesso una serie di descrizioni
sintetiche e di URI che individuano altrettante pagine web che
approfondiscono l'argomento riassunto mediante RSS. Diversi feed RSS
possono essere aggregati in
una unica pagina web, o da un medesimo
programma, in modo da mantenere sott'occhio una molteplicità di fonti
informative, e sovvertire una tecnologia pull come il web, in una push
come l'email
- SIP si occupa di veicolare i messaggi di segnalazione VoIP.
Inoltre, SIP permette di veicolare SDP, che è una sintassi di
descrizione della tipologia di contenuti multimediali che saranno
adottati nel corso della comunicazione. Infine, RTP ha lo scopo di
incapsulare i veri e propri contenuti multimediali
- un Registrar permette di conseguire la mobilità dello User Agent,
che può operare a partire da un indirizzo IP qualsiasi, registrando
presso il Registrar che
gestisce le chiamate dirette verso un
determinato dominio, la corrispondenza tra il proprio Address of Record, e l'IP (dinamico) in uso correntemente
- occorre che presso il DNS autorevole per il dominio di
registrazione (sip.labint)
sia presente un RR di tipo SRV, tale da indicare il nome a dominio registrar.sip.labint come
quello
dell'host presso cui è attivo il Registrar di sip.labint; in tal modo, il
chiamante (o il suo outbound proxy) può interrogare il DNS, e conoscere
a chi inoltrare la chiamata
- una transazione individua un singolo ciclo richiesta-risposta
SIP, e comprende sia le risposta temporanee, che quella definitiva. Se
la transazione inizia con un INVITE, e dà luogo ad un nuova chiamata,
allora viene creato un contesto denominato dialogo, che dura fino
all'abbattimento della stessa, è identificato dal valore dell'header
Call-ID e dalla coppia (from-tag,
to-tag), e comprende tutte
le transazioni effettuate durante lo stesso dialogo. Nel caso, infine,
in cui vi siano più di due entità che prendono parte alla stessa
comunicazione multimediale, come nel caso di una teleconferenza, e per
ognuna delle quali si sia iniziata la chiamata con un INVITE che ha
creato un dialogo associato, allora tutti questi dialoghi vanno a far
parte della medesima sessione.
- Ha lo scopo di individuare un insieme di tipi di media (audio,
video, tastiera del telefono, o loro combinazioni) comuni alle parti in
comunicazione.
- L'SDP trasportato nella offerta contiene, per ogni media
proposto, una serie di numeri (payload
type). Alcuni di questi sono associati in modo univoco ad
altrettanti codificatori (e media type), nell'ambito della RFC che
descrive il profilo di utilizzo dell'RTP; altri invece sono associati
in modo dinamico mediante gli
elementi attributo, sempre
presenti nell'SDP, che specificano il sottotipo
(e quindi il relativo codec) da collegare a quel PT, per quel
determinato media.
- il Playout
Buffer serve a compensare le fluttazioni dei tempi di
interarrivo dei pacchetti RTP, in modo da ridure al minimo la
percentuale dei pacchetti arrivati con un ritardo eccessivo per poter
essere riprodotti.
- un server STUN serve ad uno UA che opera dietro un Router-NAT,
per venire a conoscenza del tipo di NAT attraverso il quale esce su
Internet, e di come questo si presenta all'esterno, ossia il suo IP
pubblico, ed il modo con cui viene associata la porta di uscita a
quella usata dallo UA stesso.
Seconda Parte
- 1) lo UA chiamante si trova presso l'indirizzo IP 192.168.0.213,
ed il numero di porta mittente è il 5066.
- 2) il to-tag jyjwv viene inserito al
pacchetto 17, da parte dello UA chiamato, al momento in cui inizia a
squillare il telefono
- 3) le tre intestazioni sono inserite rispettivamente da
- 192.168.0.152;branch=z9hG4bK586.17d489b1.0
dal Registrar dello UA
chiamato
- 192.168.0.213;branch=z9hG4bK586.84745d31.0
dall'Outbound Proxy,
co-residente con lo UA chiamante
- 192.168.0.213:5066;received=127.0.0.1;rport=5066;branch=z9hG4bKqhzvqjij
dallo UA chiamante, quando
consegna l'INVITE al suo outbound proxy. Per farlo, usa l'interfaccia
lo:, e questo viene annotato da chi lo riceve
Realizzato
con
da Alessandro
Falaschi -