Uni.TemiEsameSED08 History
Show minor edits - Show changes to output
January 22, 2008, at 06:04 PM
by
- Changed lines 133-134 from:
to:
[[Versione alternativa in PDF ->Attach:Es1SED08.pdf]]
January 21, 2008, at 12:15 PM
by
- Changed lines 217-226 from:
to:
Una query diretta si ha quando passo un NOME al DNS, e questi mi risponde con un indirizzo IP: è la '''risoluzione''' del nome.
Una query inversa invece la ottengo passando un indirizzo IP al DNS, e ricevendo il nome associato a quell'indirizzo: è la '''risoluzione inversa'''.
Il comando '''nslookup''' è abbastanza furbo da interpretare ciò che gli viene passato come argomento. Se gli passo un nome di sito, mi restituisce l'IP. Se gli passo un IP, mi restituisce il nome di quel sito.
Esempio:
nslookup 159.149.70.1
Una query inversa invece la ottengo passando un indirizzo IP al DNS, e ricevendo il nome associato a quell'indirizzo: è la '''risoluzione inversa'''.
Il comando '''nslookup''' è abbastanza furbo da interpretare ciò che gli viene passato come argomento. Se gli passo un nome di sito, mi restituisce l'IP. Se gli passo un IP, mi restituisce il nome di quel sito.
Esempio:
nslookup 159.149.70.1
January 21, 2008, at 12:15 PM
by
- Changed lines 20-21 from:
Schema riassuntivo dello pseudocodice:\\
to:
''Schema riassuntivo dello pseudocodice:''\\\
Added line 35:
''Pseudocodice:''\\\
January 21, 2008, at 12:14 PM
by
- Changed lines 21-33 from:
* creare le variabili per leggere da linea di comando
* creo un socket
* controllo errore sul socket
* creo struttura sockaddr_in (per i campi vedi [[socket library -> http://www.doppioclic.altervista.org/wiki/index.php?n=Uni.SocketLibrary]] )
* faccio la connect
* faccio un controllo sullo status
* creo stringa da inviare con la send
* chiamo la recv (per i campi vedi [[socket library -> http://www.doppioclic.altervista.org/wiki/index.php?n=Uni.SocketLibrary]] )
* controllo il contenuto della prima riga della risposta (HTTP/1.1 200 OK )
* analizzo tutti i dati che sono arrivati dal server e li salvo in un file temporaneo, poi estraggo il contenuto di content-type in una stringa
* controllo il contenuto della stringa content-type e lancio il comando appropriato
* chiudo la socket\\\
* creo un socket
* controllo errore sul socket
* creo struttura sockaddr_in (per i campi vedi [[socket library -> http://www.doppioclic.altervista.org/wiki/index.php?n=Uni.SocketLibrary]] )
* faccio la connect
* faccio un controllo sullo status
* creo stringa da inviare con la send
* chiamo la recv (per i campi vedi [[socket library -> http://www.doppioclic.altervista.org/wiki/index.php?n=Uni.SocketLibrary]] )
* controllo il contenuto della prima riga della risposta (HTTP/1.1 200 OK )
* analizzo tutti i dati che sono arrivati dal server e li salvo in un file temporaneo, poi estraggo il contenuto di content-type in una stringa
* controllo il contenuto della stringa content-type e lancio il comando appropriato
* chiudo la socket\\\
to:
# creare le variabili per leggere da linea di comando
# creo un socket
# controllo errore sul socket
# creo struttura sockaddr_in (per i campi vedi [[socket library -> http://www.doppioclic.altervista.org/wiki/index.php?n=Uni.SocketLibrary]] )
# faccio la connect
# faccio un controllo sullo status
# creo stringa da inviare con la send
# chiamo la recv (per i campi vedi [[socket library -> http://www.doppioclic.altervista.org/wiki/index.php?n=Uni.SocketLibrary]] )
# controllo il contenuto della prima riga della risposta (HTTP/1.1 200 OK )
# analizzo tutti i dati che sono arrivati dal server e li salvo in un file temporaneo, poi estraggo il contenuto di content-type in una stringa
# controllo il contenuto della stringa content-type e lancio il comando appropriato
# chiudo la socket\\\
January 21, 2008, at 12:13 PM
by
- Added lines 20-33:
Schema riassuntivo dello pseudocodice:\\
* creare le variabili per leggere da linea di comando
* creo un socket
* controllo errore sul socket
* creo struttura sockaddr_in (per i campi vedi [[socket library -> http://www.doppioclic.altervista.org/wiki/index.php?n=Uni.SocketLibrary]] )
* faccio la connect
* faccio un controllo sullo status
* creo stringa da inviare con la send
* chiamo la recv (per i campi vedi [[socket library -> http://www.doppioclic.altervista.org/wiki/index.php?n=Uni.SocketLibrary]] )
* controllo il contenuto della prima riga della risposta (HTTP/1.1 200 OK )
* analizzo tutti i dati che sono arrivati dal server e li salvo in un file temporaneo, poi estraggo il contenuto di content-type in una stringa
* controllo il contenuto della stringa content-type e lancio il comando appropriato
* chiudo la socket\\\
* creare le variabili per leggere da linea di comando
* creo un socket
* controllo errore sul socket
* creo struttura sockaddr_in (per i campi vedi [[socket library -> http://www.doppioclic.altervista.org/wiki/index.php?n=Uni.SocketLibrary]] )
* faccio la connect
* faccio un controllo sullo status
* creo stringa da inviare con la send
* chiamo la recv (per i campi vedi [[socket library -> http://www.doppioclic.altervista.org/wiki/index.php?n=Uni.SocketLibrary]] )
* controllo il contenuto della prima riga della risposta (HTTP/1.1 200 OK )
* analizzo tutti i dati che sono arrivati dal server e li salvo in un file temporaneo, poi estraggo il contenuto di content-type in una stringa
* controllo il contenuto della stringa content-type e lancio il comando appropriato
* chiudo la socket\\\
January 21, 2008, at 11:54 AM
by
- Changed lines 192-193 from:
Il protocollo Challenge Handshake Authentication Protocol (CHAP)) è un metodo di autenticazione ampiamente supportato che prevede l'invio di una rappresentazione della password dell'utente, anziché della password stessa, durante il processo di autenticazione. Tramite questo protocollo, il server di accesso remoto invia una richiesta di verifica al client di accesso remoto. Il client di accesso remoto utilizza un algoritmo hash, detto anche funzione hash, per calcolare un risultato hash MD5 (Message Digest-5) basato sulla richiesta di verifica e un risultato hash calcolato dalla password dell'utente. Il client di accesso remoto invia il risultato hash MD5 al server di accesso remoto, il quale, potendo accedere anche al risultato hash della password dell'utente, esegue lo stesso calcolo utilizzando l'algoritmo hash e confronta il risultato con quello inviato dal client. Se i risultati coincidono, le credenziali del client di accesso remoto vengono considerate autentiche. Un algoritmo hash fornisce una crittografia unidirezionale. In tal modo, il calcolo del risultato hash per un blocco di dati risulta semplice, mentre è matematicamente impossibile determinare il blocco di dati originale a partire dal risultato hash.\\
to:
Il protocollo Challenge Handshake Authentication Protocol (CHAP)) è un metodo di autenticazione ampiamente supportato che prevede l'invio di una rappresentazione della password dell'utente, anziché della password stessa, durante il processo di autenticazione. Tramite questo protocollo, il server di accesso remoto invia una richiesta di verifica al client di accesso remoto. Il client di accesso remoto utilizza un algoritmo hash, detto anche funzione hash, per calcolare un risultato hash MD5 (Message Digest-5) basato sulla richiesta di verifica e un risultato hash calcolato dalla password dell'utente. Il client di accesso remoto invia il risultato hash MD5 al server di accesso remoto, il quale, potendo accedere anche al risultato hash della password dell'utente, esegue lo stesso calcolo utilizzando l'algoritmo hash e confronta il risultato con quello inviato dal client. Se i risultati coincidono, le credenziali del client di accesso remoto vengono considerate autentiche. Un algoritmo hash fornisce una crittografia unidirezionale. In tal modo, il calcolo del risultato hash per un blocco di dati risulta semplice, mentre è matematicamente impossibile determinare il blocco di dati originale a partire dal risultato hash.\\\
Attach:md5.jpg\\
Attach:md51.jpg\\
(from Microsoft and Roberto Sassi)\\\
Attach:md5.jpg\\
Attach:md51.jpg\\
(from Microsoft and Roberto Sassi)\\\
January 21, 2008, at 11:43 AM
by
- Changed lines 191-193 from:
to:
''Challenge Handshake Authentication Protocol (CHAP)''
Il protocollo Challenge Handshake Authentication Protocol (CHAP)) è un metodo di autenticazione ampiamente supportato che prevede l'invio di una rappresentazione della password dell'utente, anziché della password stessa, durante il processo di autenticazione. Tramite questo protocollo, il server di accesso remoto invia una richiesta di verifica al client di accesso remoto. Il client di accesso remoto utilizza un algoritmo hash, detto anche funzione hash, per calcolare un risultato hash MD5 (Message Digest-5) basato sulla richiesta di verifica e un risultato hash calcolato dalla password dell'utente. Il client di accesso remoto invia il risultato hash MD5 al server di accesso remoto, il quale, potendo accedere anche al risultato hash della password dell'utente, esegue lo stesso calcolo utilizzando l'algoritmo hash e confronta il risultato con quello inviato dal client. Se i risultati coincidono, le credenziali del client di accesso remoto vengono considerate autentiche. Un algoritmo hash fornisce una crittografia unidirezionale. In tal modo, il calcolo del risultato hash per un blocco di dati risulta semplice, mentre è matematicamente impossibile determinare il blocco di dati originale a partire dal risultato hash.\\
Il protocollo Challenge Handshake Authentication Protocol (CHAP)) è un metodo di autenticazione ampiamente supportato che prevede l'invio di una rappresentazione della password dell'utente, anziché della password stessa, durante il processo di autenticazione. Tramite questo protocollo, il server di accesso remoto invia una richiesta di verifica al client di accesso remoto. Il client di accesso remoto utilizza un algoritmo hash, detto anche funzione hash, per calcolare un risultato hash MD5 (Message Digest-5) basato sulla richiesta di verifica e un risultato hash calcolato dalla password dell'utente. Il client di accesso remoto invia il risultato hash MD5 al server di accesso remoto, il quale, potendo accedere anche al risultato hash della password dell'utente, esegue lo stesso calcolo utilizzando l'algoritmo hash e confronta il risultato con quello inviato dal client. Se i risultati coincidono, le credenziali del client di accesso remoto vengono considerate autentiche. Un algoritmo hash fornisce una crittografia unidirezionale. In tal modo, il calcolo del risultato hash per un blocco di dati risulta semplice, mentre è matematicamente impossibile determinare il blocco di dati originale a partire dal risultato hash.\\
January 21, 2008, at 11:37 AM
by
- Changed line 33 from:
struct destinazione{ %green%//per brevità usiamo l'assegnamento%none%\\
to:
struct destinazione{ //per brevità usiamo l'assegnamento\\
Changed lines 39-42 from:
%green%'''Domanda:''' ''è giusto fare in questo modo? Cioè assegnare alla destinazione dei sin i parametri dei vari elementi?''\\
'''Risposta di Damiani''': ''beh, andrebbero usate funzioni per la copia di stringhe e non l'assegnamento. cmq va bene se mettete un commento dove dite che per brevita' usate l'assegnamento''
'''Risposta di Damiani''': ''beh, andrebbero usate funzioni per la copia di stringhe e non l'assegnamento. cmq va bene se mettete un commento dove dite che per brevita' usate l'assegnamento''
to:
Changed lines 84-90 from:
%green%'''Domanda:''' ''Devo spiegare come si implementa la creazione del file? Se sì, come?''\\
'''Risposta di Damiani:''' ''No; ovviamente ci sono apposite funzioni. se volete dare realismo potete mettere nomi di funzioni come una create e una write, se no basta un commento''\\
//quindi io farei\\
%green%create newFileTemp= FileTemporaneo\\\
to:
//creo il file temporaneo (basta un commento)\\
create newFileTemp= FileTemporaneo\\\
create newFileTemp= FileTemporaneo\\\
January 20, 2008, at 10:10 PM
by
- January 20, 2008, at 10:09 PM
by
- Changed lines 98-101 from:
select case type{\\
to:
//utilizzo uno switch per scrivere un una stringa "comando" il nome del viewer da aprire a seconda del contenuto del "cont"\\
switch (cont){\\
switch (cont){\\
Added lines 115-116:
//aggiungo a comando il percorso e il nome del file\\
January 20, 2008, at 10:07 PM
by
- Changed lines 92-93 from:
%green%create newFileTemporaneo ()\\\
to:
%green%create newFileTemp= FileTemporaneo\\\
January 20, 2008, at 10:06 PM
by
- Changed lines 90-92 from:
//quindi io farei
create newFileTemporaneo ()
create newFileTemporaneo ()
to:
//quindi io farei\\
%green%create newFileTemporaneo ()\\\
%green%create newFileTemporaneo ()\\\
January 20, 2008, at 10:05 PM
by
- Changed lines 89-90 from:
'''Risposta di Damiani:''' ''No; ovviamente ci sono apposite funzioni. se volete dare realismo potete mettere nomi di funzioni come una create e una write, se no basta un commento''\\\
to:
'''Risposta di Damiani:''' ''No; ovviamente ci sono apposite funzioni. se volete dare realismo potete mettere nomi di funzioni come una create e una write, se no basta un commento''\\
//quindi io farei
create newFileTemporaneo ()
//quindi io farei
create newFileTemporaneo ()
Changed lines 95-99 from:
string cont =copiaCaratteri (fileTemporaneo);\\\
to:
string cont =copiaCaratteri (FileTemporaneo);\\\
January 20, 2008, at 10:03 PM
by
- Changed lines 86-87 from:
//quindi copio o caratteri in una variabile stringa "cont" fino ai caratteri "/n"\\
to:
Added lines 91-92:
//quindi copio o caratteri in una variabile stringa "cont" fino ai caratteri "/n"\\
January 20, 2008, at 10:02 PM
by
- Changed lines 89-91 from:
'''Risposta di Damiani:''' ''No; ovviamente ci sono apposite funzioni. se volete dare realismo potete mettere
nomi di funzioni come una create e una write, se no basta un commento''\\\
nomi di funzioni come una create e una write, se no basta un commento''\\\
to:
'''Risposta di Damiani:''' ''No; ovviamente ci sono apposite funzioni. se volete dare realismo potete mettere nomi di funzioni come una create e una write, se no basta un commento''\\\
January 20, 2008, at 10:02 PM
by
- Changed lines 90-91 from:
nomi di funzioni come una create e una write, se no basta un commento''\\\%none%
to:
nomi di funzioni come una create e una write, se no basta un commento''\\\
January 20, 2008, at 10:02 PM
by
- Changed lines 90-91 from:
nomi di funzioni come una create e una write, se no basta un commento''%none%\\\
to:
nomi di funzioni come una create e una write, se no basta un commento''\\\%none%
January 20, 2008, at 10:01 PM
by
- Changed lines 86-88 from:
string comando;\\\
to:
//quindi copio o caratteri in una variabile stringa "cont" fino ai caratteri "/n"\\
%green%'''Domanda:''' ''Devo spiegare come si implementa la creazione del file? Se sì, come?''\\
'''Risposta di Damiani:''' ''No; ovviamente ci sono apposite funzioni. se volete dare realismo potete mettere
nomi di funzioni come una create e una write, se no basta un commento''%none%\\\
string cont =copiaCaratteri (fileTemporaneo);\\\
%green%'''Domanda:''' ''Devo spiegare come si implementa la creazione del file? Se sì, come?''\\
'''Risposta di Damiani:''' ''No; ovviamente ci sono apposite funzioni. se volete dare realismo potete mettere
nomi di funzioni come una create e una write, se no basta un commento''%none%\\\
string cont =copiaCaratteri (fileTemporaneo);\\\
January 20, 2008, at 09:51 PM
by
- Deleted lines 128-130:
%warning%'''WARNING'''\\
La parte opzionale dell'esercizio l'ha mai fatta o accennata?
La parte opzionale dell'esercizio l'ha mai fatta o accennata?
January 20, 2008, at 09:40 PM
by
- January 20, 2008, at 09:34 PM
by
- Changed line 33 from:
struct destinazione{ %green%//per brevità usiamo l'assegnamento%none% \\
to:
struct destinazione{ %green%//per brevità usiamo l'assegnamento%none%\\
January 20, 2008, at 09:33 PM
by
- Changed line 33 from:
struct destinazione{ %green%//per brevità usiamo l'assegnamento%none%\\
to:
struct destinazione{ %green%//per brevità usiamo l'assegnamento%none% \\
January 20, 2008, at 09:33 PM
by
- January 20, 2008, at 09:32 PM
by
- Changed line 33 from:
struct destinazione{\\
to:
struct destinazione{ %green%//per brevità usiamo l'assegnamento%none%\\
Changed line 39 from:
%green%'''Domanda:''' ''è giusto fare in questo modo? Cioè assegnare alla destinazione di sin_addr il parametro che mi passa la gethostbyname?''\\
to:
%green%'''Domanda:''' ''è giusto fare in questo modo? Cioè assegnare alla destinazione dei sin i parametri dei vari elementi?''\\
January 20, 2008, at 09:30 PM
by
- Changed lines 39-42 from:
%green%Qui la domanda era: è giusto fare in questo modo? Cioè assegnare alla destinazione di sin_addr il parametro che mi passa la gethostbyname?\\
Risposta: ''beh, andrebbero usate funzioni per la copia di stringhe e non l'assegnamento. cmq va bene se mettete un commento dove dite che per brevita' usate l'assegnamento''
Risposta: ''beh, andrebbero usate funzioni per la copia di stringhe e non l'assegnamento. cmq va bene se mettete un commento dove dite che per brevita' usate l'assegnamento''
to:
%green%'''Domanda:''' ''è giusto fare in questo modo? Cioè assegnare alla destinazione di sin_addr il parametro che mi passa la gethostbyname?''\\
'''Risposta di Damiani''': ''beh, andrebbero usate funzioni per la copia di stringhe e non l'assegnamento. cmq va bene se mettete un commento dove dite che per brevita' usate l'assegnamento''
'''Risposta di Damiani''': ''beh, andrebbero usate funzioni per la copia di stringhe e non l'assegnamento. cmq va bene se mettete un commento dove dite che per brevita' usate l'assegnamento''
January 20, 2008, at 09:29 PM
by
- Added lines 39-42:
%green%Qui la domanda era: è giusto fare in questo modo? Cioè assegnare alla destinazione di sin_addr il parametro che mi passa la gethostbyname?\\
Risposta: ''beh, andrebbero usate funzioni per la copia di stringhe e non l'assegnamento. cmq va bene se mettete un commento dove dite che per brevita' usate l'assegnamento''
Risposta: ''beh, andrebbero usate funzioni per la copia di stringhe e non l'assegnamento. cmq va bene se mettete un commento dove dite che per brevita' usate l'assegnamento''
January 18, 2008, at 08:45 PM
by
- Changed lines 107-108 from:
to:
'''CHE BELLO QUESTO PSEUDO COSI' PSYCO!'''\\
[--Quake--]
[--Quake--]
January 18, 2008, at 08:44 PM
by
- Added lines 20-108:
LATO CLIENT
//suppongo che il nome del mio host sia nella posizione 1 dell’array e che il numero di porta sia nella posizione 2
nome=parametro[1]\\
porta=parametro[2]\\\
//creo il socket sockid\\\
int sockid = socket (PF_INET, SOCK_STEAM, IPPORTO_TCP)\\\
//costruisco la struct sockaddr_in , sockaddr pecifica per IP che qui chiamo destinazione\\\
struct destinazione{\\
destinazione.sin_famyly = AF_INET;\\
destinazione.sin_port = porta ; // numero di porta\\
destinazione.sin_addr = gethostbyname(nome); //nome dell’host\\
}\\\
//CONNECT\\\
status = connect (sockid, destinazione, NULL)\\\
//controllo lo stato : se lo stato è =0 va tutto bene altrimenti mando un msg di errore ed esco\\\
If (status = = -1){\\
print(“Errore”);\\
exit(-1);}\\\
//definisco una string richiesta che contiene la prima linea di una richiesta http e la string risposta \\\
string richiesta =”GET” + nome + “HTTP/1.1 \n” + “connection: close”\\\
//per poter ricevere il file devo avere un buffer (risposta)che lo contenga\\\
string risposta;\\\
//RECEIVE\\\
recv (sockid, risposta, strlenght, 0)\\
if (risposta != “http/1.1 200 OK”)
->{print(“errore”);
->exit(-1);}\\\
recv (sockid, risposta, strlenght, 0)\\\
//creo la stringa type che dovrà contenere il valore di content-type e la variabile lunghezza che dovrà contenere il valore di content-lenght\\\
string type= parse(risposta, “content-type”);\\
int lunghezza = parse (risposta, “content-lenght”);\\\
//creo il buffer buffer lungo quanto il mess di risposta (lunghezza)\\\
Char buffer = new char[lunghezza]\\\
recv (sockid, buffer, lunghezza, 0)\\\
Status =close(sockid);\\
if (status = = -1”)
->{print(“errore”);
->exit(-1);}\\\
//suppongo che il file da inviare si chiami temporaneo.temp e che si trovi nella cartella temp (/temp/temporaneo.temp)\\\
string comando;\\\
select case type{\\
-->case=”text.html”
-->then comando=modzilla 6.0;
-->break;\\\
-->case=”image/*”
-->then comando=gimp;
-->break;\\\
-->case=”audio/*”
-->then comando=windows media player;
-->break;\\\
else comando=notepad;}\\\
comando = comando + “/temp/temporaneo.temp”;\\\
execute(comando);\\\
return(0);
//suppongo che il nome del mio host sia nella posizione 1 dell’array e che il numero di porta sia nella posizione 2
nome=parametro[1]\\
porta=parametro[2]\\\
//creo il socket sockid\\\
int sockid = socket (PF_INET, SOCK_STEAM, IPPORTO_TCP)\\\
//costruisco la struct sockaddr_in , sockaddr pecifica per IP che qui chiamo destinazione\\\
struct destinazione{\\
destinazione.sin_famyly = AF_INET;\\
destinazione.sin_port = porta ; // numero di porta\\
destinazione.sin_addr = gethostbyname(nome); //nome dell’host\\
}\\\
//CONNECT\\\
status = connect (sockid, destinazione, NULL)\\\
//controllo lo stato : se lo stato è =0 va tutto bene altrimenti mando un msg di errore ed esco\\\
If (status = = -1){\\
print(“Errore”);\\
exit(-1);}\\\
//definisco una string richiesta che contiene la prima linea di una richiesta http e la string risposta \\\
string richiesta =”GET” + nome + “HTTP/1.1 \n” + “connection: close”\\\
//per poter ricevere il file devo avere un buffer (risposta)che lo contenga\\\
string risposta;\\\
//RECEIVE\\\
recv (sockid, risposta, strlenght, 0)\\
if (risposta != “http/1.1 200 OK”)
->{print(“errore”);
->exit(-1);}\\\
recv (sockid, risposta, strlenght, 0)\\\
//creo la stringa type che dovrà contenere il valore di content-type e la variabile lunghezza che dovrà contenere il valore di content-lenght\\\
string type= parse(risposta, “content-type”);\\
int lunghezza = parse (risposta, “content-lenght”);\\\
//creo il buffer buffer lungo quanto il mess di risposta (lunghezza)\\\
Char buffer = new char[lunghezza]\\\
recv (sockid, buffer, lunghezza, 0)\\\
Status =close(sockid);\\
if (status = = -1”)
->{print(“errore”);
->exit(-1);}\\\
//suppongo che il file da inviare si chiami temporaneo.temp e che si trovi nella cartella temp (/temp/temporaneo.temp)\\\
string comando;\\\
select case type{\\
-->case=”text.html”
-->then comando=modzilla 6.0;
-->break;\\\
-->case=”image/*”
-->then comando=gimp;
-->break;\\\
-->case=”audio/*”
-->then comando=windows media player;
-->break;\\\
else comando=notepad;}\\\
comando = comando + “/temp/temporaneo.temp”;\\\
execute(comando);\\\
return(0);
January 03, 2008, at 06:26 PM
by
- Added lines 92-98:
'''1.'''\\
'''2.'''\\
Il portmapper RPC è un demone che agisce sulla porta 111 e che converte i numeri del programma RPC in numeri di porta del protocollo TCP/IP (o UDP/IP). Deve essere in funzione al fine di eseguire chiamate RPC ai server RPC su quella macchina. Quando un server RPC è in esecuzione, comunica a portmap su quale numero di porta è in ascolto e quali numeri di programmi RPC è pronto a servire. Quando un client desidera fare una chiamata RPC ad un dato numero di programma, prima contatta portmap sulla macchina server al fine di determinare il numero della porta dove i pacchetti RPC potranno essere inviati.\\\
'''3.'''\\
'''2.'''\\
Il portmapper RPC è un demone che agisce sulla porta 111 e che converte i numeri del programma RPC in numeri di porta del protocollo TCP/IP (o UDP/IP). Deve essere in funzione al fine di eseguire chiamate RPC ai server RPC su quella macchina. Quando un server RPC è in esecuzione, comunica a portmap su quale numero di porta è in ascolto e quali numeri di programmi RPC è pronto a servire. Quando un client desidera fare una chiamata RPC ad un dato numero di programma, prima contatta portmap sulla macchina server al fine di determinare il numero della porta dove i pacchetti RPC potranno essere inviati.\\\
'''3.'''\\
January 03, 2008, at 12:53 PM
by
- Changed line 76 from:
{+''Connection:'' +} indica una connessione non persistente\\
to:
{+''Connection:'' +} close indica una connessione non persistente\\
January 03, 2008, at 12:39 PM
by
- Deleted line 76:
NOTA: questo campo può essere solo ''open''(persistente) o ''close''(non persistente)\\
January 02, 2008, at 05:05 PM
by
- January 02, 2008, at 03:03 PM
by
- Changed line 74 from:
{+''Accept-Ranges:'' +} specifica quale tipo di contenuto questo server supporta\\
to:
{+''Accept-Ranges:'' +} specifica quale tipo di contenuto questo server supporta, che tipo di range può accettare. I valori previsti sono: ''bytes'' e ''none''\\
January 02, 2008, at 02:55 PM
by
- Changed lines 67-68 from:
''http/1.1:'' indica il protocollo e la sua versione.\\
''200 OK:'' significa che la richiesta è andata a buon fine e l’oggetto richiesto è incluso nella risposta.\\
''200 OK:'' significa che la richiesta è andata a buon fine e l’oggetto richiesto è incluso nella risposta.\\
to:
{+ ''http/1.1:'' +} indica il protocollo e la sua versione.\\
{+ ''200 OK:'' +} significa che la richiesta è andata a buon fine e l’oggetto richiesto è incluso nella risposta.\\
{+ ''200 OK:'' +} significa che la richiesta è andata a buon fine e l’oggetto richiesto è incluso nella risposta.\\
Changed lines 70-78 from:
''Date:''data di creazione della risposta\\
''Server:'' tipo di Web Server\\
''Last-Modified:'' data dell’ultima modifica dell’oggetto richiesto\\
''ETag:'' identificativo della pagina, se la pagina cambia\\
''Accept-Ranges:'' specifica quale tipo di contenuto questo server supporta\\
''Content-Length:'' dimensioni in bytes della risposta\\
''Connection:'' indica una connessione non persistente\\
NOTA: questo campo può essere solo ''open''(persistente) o ''close''(non persistente)
''Content-Type'': tipo dell’oggetto contenuto nell’Entity Body, nel corpo della risposta.\\
''Server:'' tipo di Web Server\\
''Last-Modified:'' data dell’ultima modifica dell’oggetto richiesto\\
''ETag:'' identificativo della pagina, se la pagina cambia\\
''Accept-Ranges:'' specifica quale tipo di contenuto questo server supporta\\
''Content-Length:'' dimensioni in bytes della risposta\\
''Connection:'' indica una connessione non persistente\\
NOTA: questo campo può essere solo ''open''(persistente) o ''close''(non persistente)
''Content-Type'': tipo dell’oggetto contenuto nell’Entity Body, nel corpo della risposta.\\
to:
{+ ''Date:'' +} data di creazione della risposta\\
{+ ''Server:'' +} tipo di Web Server\\
{+ ''Last-Modified:'' +} data dell’ultima modifica dell’oggetto richiesto\\
{+ ''ETag:'' +} identificativo della pagina, se la pagina cambia, cambia anche questo valore\\
{+''Accept-Ranges:'' +} specifica quale tipo di contenuto questo server supporta\\
{+''Content-Length:'' +} dimensioni in bytes della risposta\\
{+''Connection:'' +} indica una connessione non persistente\\
NOTA: questo campo può essere solo ''open''(persistente) o ''close''(non persistente)\\
{+''Content-Type:'' +} tipo dell’oggetto contenuto nell’Entity Body, nel corpo della risposta.\\
{+ ''Server:'' +} tipo di Web Server\\
{+ ''Last-Modified:'' +} data dell’ultima modifica dell’oggetto richiesto\\
{+ ''ETag:'' +} identificativo della pagina, se la pagina cambia, cambia anche questo valore\\
{+''Accept-Ranges:'' +} specifica quale tipo di contenuto questo server supporta\\
{+''Content-Length:'' +} dimensioni in bytes della risposta\\
{+''Connection:'' +} indica una connessione non persistente\\
NOTA: questo campo può essere solo ''open''(persistente) o ''close''(non persistente)\\
{+''Content-Type:'' +} tipo dell’oggetto contenuto nell’Entity Body, nel corpo della risposta.\\
January 02, 2008, at 02:49 PM
by
- Changed line 61 from:
Richiesta http:
to:
Richiesta http:\\
Changed line 66 from:
Campi della risposta:
to:
Campi della risposta:\\
Added line 81:
January 02, 2008, at 02:48 PM
by
- Changed lines 61-62 from:
...
to:
Richiesta http:
Esegue una connessione telnet al sito www.crema.unimi.it sulla porta 80.\\
Una volta connesso il carattere di terminazione è ‘^]’ che corrisponde all’…..\\
Il metodo HEAD è uguale al GET (richiede qualunque oggetto che sia stato identificato dalla URL di richiesta), ma il server non deve includere un messaggio nel body della risposta quindi restituisce solo i campi dell'header.\\\
Campi della risposta:
''http/1.1:'' indica il protocollo e la sua versione.\\
''200 OK:'' significa che la richiesta è andata a buon fine e l’oggetto richiesto è incluso nella risposta.\\
NOTA: il ''numero'' è lo status code, mentre ''ok'' è lo status message, rappresentano la stessa informazione, ma una sotto forma di numero, l’altra sotto forma di messaggio.\\
''Date:''data di creazione della risposta\\
''Server:'' tipo di Web Server\\
''Last-Modified:'' data dell’ultima modifica dell’oggetto richiesto\\
''ETag:'' identificativo della pagina, se la pagina cambia\\
''Accept-Ranges:'' specifica quale tipo di contenuto questo server supporta\\
''Content-Length:'' dimensioni in bytes della risposta\\
''Connection:'' indica una connessione non persistente\\
NOTA: questo campo può essere solo ''open''(persistente) o ''close''(non persistente)
''Content-Type'': tipo dell’oggetto contenuto nell’Entity Body, nel corpo della risposta.\\
In questo caso testo di tipo html e codifica iso-8859-1\\
Esegue una connessione telnet al sito www.crema.unimi.it sulla porta 80.\\
Una volta connesso il carattere di terminazione è ‘^]’ che corrisponde all’…..\\
Il metodo HEAD è uguale al GET (richiede qualunque oggetto che sia stato identificato dalla URL di richiesta), ma il server non deve includere un messaggio nel body della risposta quindi restituisce solo i campi dell'header.\\\
Campi della risposta:
''http/1.1:'' indica il protocollo e la sua versione.\\
''200 OK:'' significa che la richiesta è andata a buon fine e l’oggetto richiesto è incluso nella risposta.\\
NOTA: il ''numero'' è lo status code, mentre ''ok'' è lo status message, rappresentano la stessa informazione, ma una sotto forma di numero, l’altra sotto forma di messaggio.\\
''Date:''data di creazione della risposta\\
''Server:'' tipo di Web Server\\
''Last-Modified:'' data dell’ultima modifica dell’oggetto richiesto\\
''ETag:'' identificativo della pagina, se la pagina cambia\\
''Accept-Ranges:'' specifica quale tipo di contenuto questo server supporta\\
''Content-Length:'' dimensioni in bytes della risposta\\
''Connection:'' indica una connessione non persistente\\
NOTA: questo campo può essere solo ''open''(persistente) o ''close''(non persistente)
''Content-Type'': tipo dell’oggetto contenuto nell’Entity Body, nel corpo della risposta.\\
In questo caso testo di tipo html e codifica iso-8859-1\\
January 02, 2008, at 12:57 PM
by
- Changed lines 27-28 from:
...
to:
I dati possono essere big-endian e little-endian, questi due standard consistono in un differente ordinamento dei byte. Little-endian ordina prima i byte '''meno''' significativi (''ex'': 12.40.119.128) mentre big-endian ordina prima i byte '''più''' significativi (''ex'': 128.119.40.12).\\
Un host può utilizzare entrambi gli ordinamenti, mentre la rete utilizza solo l’ordinamento big-endian quindi è necessario fare una conversione nell’ordine dei byte della rete prima di trasmettere ('''Marshalling''') e un'altra conversione nel momento della ricezione('''Unmarshalling'''). Questo processo si può schematizzare in questo modo: marshalling --> trasmissione --> ricezione --> unmarshalling
Attach:esempio1SED08.jpg
NOTA: se una macchina è già big-endian queste conversioni non fanno nulla.\\\
Vedi slide '''DAM_U4_U1_L5'''
%warning%'''WARNING'''\\
La parte opzionale dell'esercizio l'ha mai fatta o accennata?
Un host può utilizzare entrambi gli ordinamenti, mentre la rete utilizza solo l’ordinamento big-endian quindi è necessario fare una conversione nell’ordine dei byte della rete prima di trasmettere ('''Marshalling''') e un'altra conversione nel momento della ricezione('''Unmarshalling'''). Questo processo si può schematizzare in questo modo: marshalling --> trasmissione --> ricezione --> unmarshalling
Attach:esempio1SED08.jpg
NOTA: se una macchina è già big-endian queste conversioni non fanno nulla.\\\
Vedi slide '''DAM_U4_U1_L5'''
%warning%'''WARNING'''\\
La parte opzionale dell'esercizio l'ha mai fatta o accennata?
December 29, 2007, at 02:21 PM
by
- December 29, 2007, at 02:20 PM
by
- Changed lines 34-49 from:
''% telnet www.crema.unimi.it 80 \\
Trying 157.99.64.12... \\
Connected to www.crema.unimi.it. \\
Escape character is '^]'. \\
HEAD /formation/infobio/web/course/data/page1.html HTTP/1.0 \\\
HTTP/1.1 200 OK \\
Date: Tue, 24 Feb 2004 18:01:05 GMT \\
Server: Apache/1.3.26 (Unix) mod_perl/1.24_01 mod_ss1/2.8.10 OpenSSL/0.9.5a \\
Last-Modified: Tue, 18 Feb 2005 14:38:31 GMT \\
ETag: "101e6a1-cd-3e5237be" \\
Accept-Ranges: bytes \\
Content-Lenght: 205 \\
Connection: close \\
Content-Type: text/html; charset=iso-8859-1'' \\\
Trying 157.99.64.12... \\
Connected to www.crema.unimi.it. \\
Escape character is '^]'. \\
HEAD /formation/infobio/web/course/data/page1.html HTTP/1.0 \\\
HTTP/1.1 200 OK \\
Date: Tue, 24 Feb 2004 18:01:05 GMT \\
Server: Apache/1.3.26 (Unix) mod_perl/1.24_01 mod_ss1/2.8.10 OpenSSL/0.9.5a \\
Last-Modified: Tue, 18 Feb 2005 14:38:31 GMT \\
ETag: "101e6a1-cd-3e5237be" \\
Accept-Ranges: bytes \\
Content-Lenght: 205 \\
Connection: close \\
Content-Type: text/html; charset=iso-8859-1'' \\\
to:
''% telnet www.crema.unimi.it 80'' \\
''Trying 157.99.64.12...'' \\
''Connected to www.crema.unimi.it.'' \\
''Escape character is '^]'.'' \\
''HEAD /formation/infobio/web/course/data/page1.html HTTP/1.0'' \\\
''HTTP/1.1 200 OK'' \\
''Date: Tue, 24 Feb 2004 18:01:05 GMT'' \\
''Server: Apache/1.3.26 (Unix) mod_perl/1.24_01 mod_ss1/2.8.10 OpenSSL/0.9.5a'' \\
''Last-Modified: Tue, 18 Feb 2005 14:38:31 GMT'' \\
''ETag: "101e6a1-cd-3e5237be"'' \\
''Accept-Ranges: bytes'' \\
''Content-Lenght: 205'' \\
''Connection: close'' \\
''Content-Type: text/html; charset=iso-8859-1'' \\\
''Trying 157.99.64.12...'' \\
''Connected to www.crema.unimi.it.'' \\
''Escape character is '^]'.'' \\
''HEAD /formation/infobio/web/course/data/page1.html HTTP/1.0'' \\\
''HTTP/1.1 200 OK'' \\
''Date: Tue, 24 Feb 2004 18:01:05 GMT'' \\
''Server: Apache/1.3.26 (Unix) mod_perl/1.24_01 mod_ss1/2.8.10 OpenSSL/0.9.5a'' \\
''Last-Modified: Tue, 18 Feb 2005 14:38:31 GMT'' \\
''ETag: "101e6a1-cd-3e5237be"'' \\
''Accept-Ranges: bytes'' \\
''Content-Lenght: 205'' \\
''Connection: close'' \\
''Content-Type: text/html; charset=iso-8859-1'' \\\
December 29, 2007, at 02:19 PM
by
- Changed line 34 from:
% telnet www.crema.unimi.it 80 \\
to:
''% telnet www.crema.unimi.it 80 \\
Changed lines 48-49 from:
Content-Type: text/html; charset=iso-8859-1 \\\
to:
Content-Type: text/html; charset=iso-8859-1'' \\\
Changed lines 58-59 from:
# '''Spiegate CON UN ESEMPIO cos'é il challenge nel protocollo CHAP di controllo sicuro delle password'''
# '''Cos'é il portmapper, su quale porta opera e in quale protocollo applicativo è utilizzato?'''
# '''Cos'é il portmapper, su quale porta opera e in quale protocollo applicativo è utilizzato?'''
to:
# '''Spiegate CON UN ESEMPIO cos'é il ''challenge'' nel protocollo CHAP di controllo sicuro delle password'''
# '''Cos'é il ''portmapper'', su quale porta opera e in quale protocollo applicativo è utilizzato?'''
# '''Cos'é il ''portmapper'', su quale porta opera e in quale protocollo applicativo è utilizzato?'''
December 29, 2007, at 02:15 PM
by
- Changed lines 32-34 from:
'''
Con riferimento allo scambio http che segue, spiegate (1) la richiesta http (2) tutti i campi della risposta e il loro significato.'''
Con riferimento allo scambio http che segue, spiegate (1) la richiesta http (2) tutti i campi della risposta e il loro significato.'''
to:
'''Con riferimento allo scambio http che segue, spiegate (1) la richiesta http (2) tutti i campi della risposta e il loro significato.'''
December 29, 2007, at 02:14 PM
by
- Changed lines 8-9 from:
'''Scrivete lo pseudocodice e le chiamate alla socket library necessarie per realizzare un semplice WWW client con i seguenti requisiti:
to:
'''Scrivete lo pseudocodice e le chiamate alla socket library necessarie per realizzare un semplice WWW client con i seguenti requisiti:'''
December 29, 2007, at 02:14 PM
by
- Changed lines 8-17 from:
'''Scrivete lo pseudocodice e le chiamate alla socket library necessarie per realizzare un semplice WWW client con i seguenti requisiti:'''
# Dalla linea di comando, leggete (1) la URL che si vuol leggere sul server e (2) il server port number. Create il socket e collegatelo alla porta specificata (e.g., HTTP porta 80) [suggerimento: usate le chiamate getservbyname, gethostbyname, socket, connect].
# Inviate la richiesta al WWW server usando il messaggio GET del protocollo http. Specificate esplicitamente la richiesta.
# Leggete i dati dalla connessione HTTP e salvateli su un file temporaneo creato nella vostra WWW cache (e.g., /tmp/yourloginname)sul computer locale
# Lanciate il processo di un viewer per mostrare a video il ile (suggerimento: usate [fork/exec]. Spiegate almeno due tecniche che potreste usare per decidere il viewer da lanciare a seconda del contenuto del file (suggerimento:usate il campo ContentType di http)'''
# Dalla linea di comando, leggete (1) la URL che si vuol leggere sul server e (2) il server port number. Create il socket e collegatelo alla porta specificata (e.g., HTTP porta 80) [suggerimento: usate le chiamate getservbyname, gethostbyname, socket, connect].
# Inviate la richiesta al WWW server usando il messaggio GET del protocollo http. Specificate esplicitamente la richiesta.
# Leggete i dati dalla connessione HTTP e salvateli su un file temporaneo creato nella vostra WWW cache (e.g., /tmp/yourloginname)sul computer locale
# Lanciate il processo di un viewer per mostrare a video il ile (suggerimento: usate [fork/exec]. Spiegate almeno due tecniche che potreste usare per decidere il viewer da lanciare a seconda del contenuto del file (suggerimento:usate il campo ContentType di http)'''
to:
'''Scrivete lo pseudocodice e le chiamate alla socket library necessarie per realizzare un semplice WWW client con i seguenti requisiti:
# '''Dalla linea di comando, leggete (1) la URL che si vuol leggere sul server e (2) il server port number. Create il socket e collegatelo alla porta specificata (e.g., HTTP porta 80) [suggerimento: usate le chiamate getservbyname, gethostbyname, socket, connect].'''
# '''Inviate la richiesta al WWW server usando il messaggio GET del protocollo http. Specificate esplicitamente la richiesta.'''
# '''Leggete i dati dalla connessione HTTP e salvateli su un file temporaneo creato nella vostra WWW cache (e.g., /tmp/yourloginname)sul computer locale'''
# '''Lanciate il processo di un viewer per mostrare a video il ile (suggerimento: usate [fork/exec]. Spiegate almeno due tecniche che potreste usare per decidere il viewer da lanciare a seconda del contenuto del file (suggerimento:usate il campo ContentType di http)'''
# '''Dalla linea di comando, leggete (1) la URL che si vuol leggere sul server e (2) il server port number. Create il socket e collegatelo alla porta specificata (e.g., HTTP porta 80) [suggerimento: usate le chiamate getservbyname, gethostbyname, socket, connect].'''
# '''Inviate la richiesta al WWW server usando il messaggio GET del protocollo http. Specificate esplicitamente la richiesta.'''
# '''Leggete i dati dalla connessione HTTP e salvateli su un file temporaneo creato nella vostra WWW cache (e.g., /tmp/yourloginname)sul computer locale'''
# '''Lanciate il processo di un viewer per mostrare a video il ile (suggerimento: usate [fork/exec]. Spiegate almeno due tecniche che potreste usare per decidere il viewer da lanciare a seconda del contenuto del file (suggerimento:usate il campo ContentType di http)'''
Changed lines 57-63 from:
!!Domande:'''
# Spiegate CON UN ESEMPIO cos'é il challenge nel protocollo CHAP di controllo sicuro delle password
# Cos'é il portmapper, su quale porta opera e in quale protocollo applicativo è utilizzato?
# Fate un esempio di query inversa al DNS usando il comando nslookup'''
# Spiegate CON UN ESEMPIO cos'é il challenge nel protocollo CHAP di controllo sicuro delle password
# Cos'é il portmapper, su quale porta opera e in quale protocollo applicativo è utilizzato?
# Fate un esempio di query inversa al DNS usando il comando nslookup'''
to:
!!Domande:
# '''Spiegate CON UN ESEMPIO cos'é il challenge nel protocollo CHAP di controllo sicuro delle password'''
# '''Cos'é il portmapper, su quale porta opera e in quale protocollo applicativo è utilizzato?'''
# '''Fate un esempio di query inversa al DNS usando il comando nslookup'''
# '''Spiegate CON UN ESEMPIO cos'é il challenge nel protocollo CHAP di controllo sicuro delle password'''
# '''Cos'é il portmapper, su quale porta opera e in quale protocollo applicativo è utilizzato?'''
# '''Fate un esempio di query inversa al DNS usando il comando nslookup'''
December 29, 2007, at 02:12 PM
by
- Changed lines 35-50 from:
% telnet www.crema.unimi.it 80
Trying 157.99.64.12...
Connected to www.crema.unimi.it.
Escape character is '^]'.
HEAD /formation/infobio/web/course/data/page1.html HTTP/1.0
HTTP/1.1 200 OK
Date: Tue, 24 Feb 2004 18:01:05 GMT
Server: Apache/1.3.26 (Unix) mod_perl/1.24_01 mod_ss1/2.8.10 OpenSSL/0.9.5a
Last-Modified: Tue, 18 Feb 2005 14:38:31 GMT
ETag: "101e6a1-cd-3e5237be"
Accept-Ranges: bytes
Content-Lenght: 205
Connection: close
Content-Type: text/html; charset=iso-8859-1
Trying 157.99.64.12...
Connected to www.crema.unimi.it.
Escape character is '^]'.
HEAD /formation/infobio/web/course/data/page1.html HTTP/1.0
HTTP/1.1 200 OK
Date: Tue, 24 Feb 2004 18:01:05 GMT
Server: Apache/1.3.26 (Unix) mod_perl/1.24_01 mod_ss1/2.8.10 OpenSSL/0.9.5a
Last-Modified: Tue, 18 Feb 2005 14:38:31 GMT
ETag: "101e6a1-cd-3e5237be"
Accept-Ranges: bytes
Content-Lenght: 205
Connection: close
Content-Type: text/html; charset=iso-8859-1
to:
% telnet www.crema.unimi.it 80 \\
Trying 157.99.64.12... \\
Connected to www.crema.unimi.it. \\
Escape character is '^]'. \\
HEAD /formation/infobio/web/course/data/page1.html HTTP/1.0 \\\
HTTP/1.1 200 OK \\
Date: Tue, 24 Feb 2004 18:01:05 GMT \\
Server: Apache/1.3.26 (Unix) mod_perl/1.24_01 mod_ss1/2.8.10 OpenSSL/0.9.5a \\
Last-Modified: Tue, 18 Feb 2005 14:38:31 GMT \\
ETag: "101e6a1-cd-3e5237be" \\
Accept-Ranges: bytes \\
Content-Lenght: 205 \\
Connection: close \\
Content-Type: text/html; charset=iso-8859-1 \\\
Trying 157.99.64.12... \\
Connected to www.crema.unimi.it. \\
Escape character is '^]'. \\
HEAD /formation/infobio/web/course/data/page1.html HTTP/1.0 \\\
HTTP/1.1 200 OK \\
Date: Tue, 24 Feb 2004 18:01:05 GMT \\
Server: Apache/1.3.26 (Unix) mod_perl/1.24_01 mod_ss1/2.8.10 OpenSSL/0.9.5a \\
Last-Modified: Tue, 18 Feb 2005 14:38:31 GMT \\
ETag: "101e6a1-cd-3e5237be" \\
Accept-Ranges: bytes \\
Content-Lenght: 205 \\
Connection: close \\
Content-Type: text/html; charset=iso-8859-1 \\\
Changed lines 57-58 from:
!!Domande
'''
'''
to:
!!Domande:'''
Changed lines 61-63 from:
# Fate un esempio di query inversa al DNS usando il comando nslookup
'''
'''
to:
# Fate un esempio di query inversa al DNS usando il comando nslookup'''
December 29, 2007, at 02:10 PM
by
- Changed lines 41-42 from:
to:
HTTP/1.1 200 OK
Date: Tue, 24 Feb 2004 18:01:05 GMT
Server: Apache/1.3.26 (Unix) mod_perl/1.24_01 mod_ss1/2.8.10 OpenSSL/0.9.5a
Last-Modified: Tue, 18 Feb 2005 14:38:31 GMT
ETag: "101e6a1-cd-3e5237be"
Accept-Ranges: bytes
Content-Lenght: 205
Connection: close
Content-Type: text/html; charset=iso-8859-1
Date: Tue, 24 Feb 2004 18:01:05 GMT
Server: Apache/1.3.26 (Unix) mod_perl/1.24_01 mod_ss1/2.8.10 OpenSSL/0.9.5a
Last-Modified: Tue, 18 Feb 2005 14:38:31 GMT
ETag: "101e6a1-cd-3e5237be"
Accept-Ranges: bytes
Content-Lenght: 205
Connection: close
Content-Type: text/html; charset=iso-8859-1
December 29, 2007, at 02:07 PM
by
- Changed lines 32-33 from:
''''''
to:
'''
Con riferimento allo scambio http che segue, spiegate (1) la richiesta http (2) tutti i campi della risposta e il loro significato.'''
% telnet www.crema.unimi.it 80
Trying 157.99.64.12...
Connected to www.crema.unimi.it.
Escape character is '^]'.
HEAD /formation/infobio/web/course/data/page1.html HTTP/1.0
Con riferimento allo scambio http che segue, spiegate (1) la richiesta http (2) tutti i campi della risposta e il loro significato.'''
% telnet www.crema.unimi.it 80
Trying 157.99.64.12...
Connected to www.crema.unimi.it.
Escape character is '^]'.
HEAD /formation/infobio/web/course/data/page1.html HTTP/1.0
Added lines 48-59:
!!Domande
'''
# Spiegate CON UN ESEMPIO cos'é il challenge nel protocollo CHAP di controllo sicuro delle password
# Cos'é il portmapper, su quale porta opera e in quale protocollo applicativo è utilizzato?
# Fate un esempio di query inversa al DNS usando il comando nslookup
'''
%red%[-'''SOLUZIONE'''-]
----
December 29, 2007, at 01:42 PM
by
- Added lines 1-39:
(:title Temi d'esame di Sistemi - 11/11/2005:)
[[Torna alla pagina di Sistemi Anticoncezionali delle Reti e dei Damiani->Sistemi]]
----
%titolo%''':: Temi d'esame di Sistemi - 11/11/2005 ::'''
!!Esercizio 1
'''Scrivete lo pseudocodice e le chiamate alla socket library necessarie per realizzare un semplice WWW client con i seguenti requisiti:'''
# Dalla linea di comando, leggete (1) la URL che si vuol leggere sul server e (2) il server port number. Create il socket e collegatelo alla porta specificata (e.g., HTTP porta 80) [suggerimento: usate le chiamate getservbyname, gethostbyname, socket, connect].
# Inviate la richiesta al WWW server usando il messaggio GET del protocollo http. Specificate esplicitamente la richiesta.
# Leggete i dati dalla connessione HTTP e salvateli su un file temporaneo creato nella vostra WWW cache (e.g., /tmp/yourloginname)sul computer locale
# Lanciate il processo di un viewer per mostrare a video il ile (suggerimento: usate [fork/exec]. Spiegate almeno due tecniche che potreste usare per decidere il viewer da lanciare a seconda del contenuto del file (suggerimento:usate il campo ContentType di http)'''
%red%[-'''SOLUZIONE'''-]
----
!!Esercizio 2
'''Sun XDR converte i dati nello standard big-endian prima di trasmetterli. Spiegate in cosa consiste questa conversione attraverso un esempio. (opzionale) Discutete vantaggi e svantaggi di questa tecnica rispetto a Receiver Makes it Right e CORBA CDR'''
%red%[-'''SOLUZIONE'''-]
...
----
!!Esercizio 3
''''''
%red%[-'''SOLUZIONE'''-]
...
----
[[Torna alla pagina di Sistemi Anticoncezionali delle Reti e dei Damiani->Sistemi]]
[[Torna alla pagina di Sistemi Anticoncezionali delle Reti e dei Damiani->Sistemi]]
----
%titolo%''':: Temi d'esame di Sistemi - 11/11/2005 ::'''
!!Esercizio 1
'''Scrivete lo pseudocodice e le chiamate alla socket library necessarie per realizzare un semplice WWW client con i seguenti requisiti:'''
# Dalla linea di comando, leggete (1) la URL che si vuol leggere sul server e (2) il server port number. Create il socket e collegatelo alla porta specificata (e.g., HTTP porta 80) [suggerimento: usate le chiamate getservbyname, gethostbyname, socket, connect].
# Inviate la richiesta al WWW server usando il messaggio GET del protocollo http. Specificate esplicitamente la richiesta.
# Leggete i dati dalla connessione HTTP e salvateli su un file temporaneo creato nella vostra WWW cache (e.g., /tmp/yourloginname)sul computer locale
# Lanciate il processo di un viewer per mostrare a video il ile (suggerimento: usate [fork/exec]. Spiegate almeno due tecniche che potreste usare per decidere il viewer da lanciare a seconda del contenuto del file (suggerimento:usate il campo ContentType di http)'''
%red%[-'''SOLUZIONE'''-]
----
!!Esercizio 2
'''Sun XDR converte i dati nello standard big-endian prima di trasmetterli. Spiegate in cosa consiste questa conversione attraverso un esempio. (opzionale) Discutete vantaggi e svantaggi di questa tecnica rispetto a Receiver Makes it Right e CORBA CDR'''
%red%[-'''SOLUZIONE'''-]
...
----
!!Esercizio 3
''''''
%red%[-'''SOLUZIONE'''-]
...
----
[[Torna alla pagina di Sistemi Anticoncezionali delle Reti e dei Damiani->Sistemi]]