Sei sulla pagina 1di 11

I PROTOCOLLI

Protocollo: insieme di regole che permettono di trovare uno standard di


comunicazione tra diversi computer attraverso la rete (insieme di due o più computer
connessi tra di loro ed in grado di condividere informazioni. Quando due o più
computer comunicano tra di loro si scambiano una serie di informazioni. Per potersi
scambiare informazioni, i vari computer devono avere dei protocolli che permettano
di attribuire ad un determinato comando un significato univoco per tutte le
macchine).
Un protocollo descrive:
 il formato che il messaggio deve avere
 il modo in cui i computers devono scambiarsi messaggi

Ogni protocollo viene riferito ad una particolare attività, come ad esempio spedire
messaggi attraverso la rete, stabilire connessioni remote, oppure trasferire files ed
assicura che il messaggio sia formattato e trasmesso correttamente dal mittente al
destinatario.
Esiste un protocollo diverso per ogni tipologia di servizio di rete:
 TCP/IP – per la connessione ad internet
 Simple Mail Transfer Protocol (SMTP) - per la gestione dei messaggi di posta
elettronica
 File Transfer Protocol (FTP) - per il trasferimento di files tra macchine remote
 Hypertext Transfer Protocol (HTTP) - per la trasmissione di informazioni
attraverso il WEB
 Network News Transfer Protocol (NNTP) - per la gestione dei gruppi di
discussione
 Gopher permette un servizio di informazione distribuita ed organizzata ad albero,
consistente in una serie di menu e files interconnessi tra loro
 WAIS - Wide Area Information System - permette la ricerca ed il recupero in data
base connessi in rete.
WWW è interfacciato con un certo numero di server che colloquiano attraverso
protocolli standard TCP/IP ed altri che si servono di standard più ad alto livello come
il nuovo HTTP (HyperText Transfer Protocol) creato apposta per il trasferimento del
formato HTML (HyperText Marked Language).
HTTP
Hyper Text Transfer Protocol

Tutti i clients e servers Web devono essere capaci di gestire il protocollo HTTP
affinché possano scambiarsi i documenti ipermediali, per questa ragione i Web
servers sono anche chiamati HTTP servers.
L'HTTP è un protocollo "stateless" (senza memoria) che permette sia la ricerca che il
recupero dell'informazione in maniera veloce, e permette quindi di seguire i rimandi
ipertestuali.
La scelta di un protocollo "stateless", cioè di un protocollo che non "conserva
memoria" della connessione fatta, è stata necessaria affinché fosse possibile saltare
velocemente da un server ad un altro attraverso i "links" ipertestuali.
È gestito da un software (server HTTP) residente sugli host che intendono essere
fornitori di informazioni. Chi vuole accedere alle informazioni fornite dal server
HTTP deve utilizzare un software client (browser) in grado di interpretare le
informazioni inviate dal server.
Il server, informalmente, è un programma che "gira" in attesa di una richiesta di
connessione sul suo socket (la porta assegnatagli, tipicamente è la 80). Il protocollo
viene utilizzato da un processo DAEMON (sempre in esecuzione)
Questo protocollo è invocato da TCP/IP ogni qualvolta l'URL (che è una stringa che
specifica la risorsa a cui riferirci) istanziata contiene nel primo campo la parola http.
I comandi utilizzati per comunicare con esso sono detti Metodi.
Per aumentare l’efficienza si è progettato una nuova versione del protocollo HTTP, la
versione 1.1, attualmente in fase di proposizione come standard, che permette di
utilizzare la stessa connessione TCP/IP per effettuare operazioni multiple.
  
1) Fasi di comunicazione
L' acquisizione del documento da parte del client può essere schematizzata in quattro
fasi:
 CONNESSIONE: Il client crea una connessione TCP-IP con il server usando
il suo nome di dominio (o il numero IP) ed il numero della porta di
trasmissione; se non viene fornito il numero di porta, il protocollo assume per
default che il numero sia 80.
 RICHIESTA DOCUMENTO: Il client invia la richiesta di un documento
mediante una riga di caratteri ASCII terminata da una coppia di caratteri CR-
LF (Carriage Return, Line Feed).
 RISPOSTA: La risposta inviata dal server è un messaggio in linguaggio
HTML nel quale è contenuto il documento richiesto (o un messaggio d'errore).
 SCONNESSIONE: Il server subito dopo aver spedito il documento si
sconnette. Comunque anche il client può interrompere la connessione in ogni
momento, in questo caso il server non registrerà nessuna condizione d'errore.
 
2) Indirizzi Internet
Gli indirizzi IP di Internet (dati identificativi univoci che tutti gli elaboratori
collegati a Internet devono avere) sono formati da quattro ottetti, ognuno dei quali
può rappresentare un numero da 0 a 255.
Ogni indirizzo è indicato con una sequenza di quattro numeri, ognuno corrispondente
a un ottetto compreso tra 0 e 255, separati da un punto (esempio: 10.0.231.32)
Questo perché gli indirizzi di Internet sono raggruppati, per motivi di gestione, in
varie classi:
•classi A: sono quelle in cui il primo ottetto è compreso tra 0 e 126;
•classi B: i primi due ottetti sono compresi tra 128.1 e 191.254;
•classi C: i primi tre ottetti sono compresi tra 192.0.1 e 223.255.254;
•classi D: sono quelle compresi tra 224.0.0.0 e 239.255.255.254: vengono utilizzati
per le attività in multicasting;
•classi E: sono riservate a sperimentazioni di protocolli e non possono essere
utilizzati dai normali utenti.
Gli indirizzi attualmente in uso sono prevalentemente quelli di classe A, B e C.
Questi indirizzi non sono mai dati singolarmente, ma in blocchi di indirizzi adiacenti.
Tutti gli indirizzi di classe A con lo stesso primo ottetto appartengono allo stesso
ente, e lo stesso per gli indirizzi di classe B con i primi due ottetti uguali o per gli
indirizzi di classe C con tre ottetti uguali. Per esempio, fanno parte di uno stesso
blocco (di classe A) gli indirizzi da 10.0.0.0 a 10.255.255.255, gli indirizzi (di classe
B) da 137.144.0.0 a 137.144.255.255 e gli indirizzi (di classe C) da 192.168.32.0 a
192.168.32.255.

 
3) Il Dns
L' uso degli indirizzi di Internet è piuttosto scomodo per le persone. Per questo è nata
l'esigenza di sviluppare un meccanismo che permettesse di utilizzare nomi
identificativi più semplici.
Il sistema realizzato è il Domain Name System (Dns), un servizio distribuito su rete
attraverso varie macchine server.
Come funziona: si dà un nome agli elaboratori presenti in rete che si vuole
raggiungere e si predispongono delle macchine in grado di individuare l' indirizzo
corrispondente al nome dato. Affinché questo meccanismo funzioni è necessario che i
nomi siano definiti in maniera omogenea. A questo scopo è stata definita la struttura
dei domini.
Ogni nome di elaboratore su Internet va definito come una serie di "parole" separate
da punti. Queste parole formano una gerarchia: la prima parola individua
l'elaboratore, la seconda individua la struttura a cui l'elaboratore fa riferimento, la
terza ancora la struttura che sta sopra e così via fino all'ultima parola che rappresenta
il dominio di primo livello. Per esempio il nome di dominio www.dia.unisa.it dice
che si tratta dell'elaboratore di nome www, appartenente alla struttura dia
(dipartimento di informatica e applicazioni), che fa riferimento alla struttura unisa
(Università di Salerno) che fa riferimento a it (Italia).
Alcuni domini a tre lettere sono:
 com per aziende commerciali;
 edu per strutture educative americane, soprattutto universitarie.
 gov per enti governativi americani (per esempio whitehouse.gov);
 int per enti internazionali (per esempio eu.int è il dominio dell'Europa Unita
che probabilmente verrà sostituito da eu);
 mil per enti militari americani;
 net per fornitori di reti;
 org per organizzazioni (per esempio unicode.org).
Alcuni domini a due lettere sono:
 au per l'Australia (l'Austria è "at");
 es per la Spagna;
 de per la Germania;
 fr per la Francia;
 it per l'Italia;
 uk (United Kingdom) per il Regno Unito;
è stato inoltre proposto, per l'Europa unita, l'introduzione del nuovo codice a due
lettere eu.
 
4) Url, urn e uri
In Internet è necessario avere un metodo per far riferimento alle varie risorse
disponibili e dato che Internet è un sistema client-server in cui ogni cliente utilizza le
risorse rese disponibili dai vari server, ogni risorsa necessaria deve essere
rintracciabile e soprattutto descrivibile per poter essere raggiunta.
Per raggiungere le varie risorse è stato definito, inizialmente nell'ambito del Web, un
meccanismo basato su apposite descrizioni delle risorse detto url. Questo
meccanismo si è poi evoluto negli attuali urn e uri.
 
4.2) Url, Urn, Uri
Una url, Uniform Resource Locator, permette di localizzare le risorse attraverso un
metodo uniforme. Tutte le url condividono un' unica sintassi: sono formate da un
nome di uno schema seguito dai due punti e da una descrizione della risorsa. Il modo
in cui la risorsa è descritta dipende dallo schema. Molti schemi condividono la stessa
modalità di descrizione della risorsa.
La risorsa è individuata dalle seguenti parti:
•il nome di un server, sotto forma di una descrizione di dominio, preceduto da una
doppia barra inclinata "//";
•un percorso che localizza la risorsa sul server, eventualmente diviso in più parti
separate da una barra inclinata "/";
•il nome della risorsa;
•un eventuale nome di frammento, ovvero di una piccola parte della risorsa,
preceduto da un diesis "#";
•una eventuale interrogazione (o query) relativa alla risorsa, preceduta da un punto
interrogativo "?".
Esempio: http://www.dia.unisa.it/glossario/indice.html;
Alcuni schemi utilizzano descrizioni diverse. Il più importante è quello della posta
elettronica, in cui la risorsa è individuata dal nome di una mailbox utente, seguito da
un carattere ad "@", seguito dal nome del server sotto forma di nome di dominio.
Le url fanno riferimento a risorse che possono dinamicamente cambiare. Per cercare
di superare questo limite sono state definiti gli urn. Urn significa Uniform Resource
Name, e di fatto può essere ricondotto a un particolare schema, dove il nome dello
schema è urn seguito dai due punti e da una descrizione dell' urn.
Un uri, infine, o Uniform Resouce Identifier, è un identificatore di risorse che può
essere o un url o un urn.
  
5) Proxy, Gateway e Tunnel 
L’ HTTP è un protocollo client/server; un cliente manda una richiesta ad un server,
fornendogli un uri che localizza la risorsa sul server, per poi ricevere un risposta da
quest’ultimo.
Nel caso più semplice si apre una singola connessione attraverso un socket che
connette il client (browser) con il server http.
Una situazione più complicta avviene quando vengono coinvolti :
 Proxy: un programma che si trova tra il client ed il server e simula entrambi. Il
client inoltra la richiesta al proxy e questo la invia al server, poi il server inoltra
la risposta al proxy e questo la invia al client. Un "transparent proxy" è un
proxy che non modifica i dati che gli arrivano, mentre un "non-transparent
proxy" modifica le richieste e le risposte aggiungendo loro altre informazioni
inerenti al client o al server oppure per una riduzione di protocollo oppure per
fungere da filtro.
 Gateway: un server che funge da server originario ricevendo la richiesta per
poi rispondere. Il client richiedente potrebbe non essere consapevole di stare in
comunicazione con un gateway. Il gateway viene utilizzato per interconnettere
reti locali diverse in modo da permettere lo scambio di informazioni tra di loro.
 Tunnel: un programma intermediario che serve per unire due connessioni
senza né cambiare i messaggi né capirli. Si potrebbe immaginarlo come un
firewall.
Per ridurre il traffico sulla rete e per velocizzare i trasferimenti più frequenti, sono
stati introdotti i Proxy Server che generalmente supportano una cache memory. I dati
che attraversano il Proxy server, vengono memorizzati su una memoria di massa in
modo da poter essere restituiti il più rapidamente possibile durante successive
richieste identiche
6) Messaggi

Gli oggetti implicati nella comunicazione client/server prendono il nome di messaggi.


La richiesta di un client e la risposta di un server sono messaggi. Essi sono trasmessi
in un formato simile a quello usato per le E-mail che prende il nome di Multipurpose
Internet Mail Extensions (MIME).

Il server deve comunicare al client il tipo MIME utilizzato nella risposta e il client
deve comunicare, attraverso il campo accept, al server quali formati può gestire.

Tipo MIME Estensioni Descrizione


application/postscript ps eps PostScript.
application/rtf rtf Rich Text Format.
application/x-tex tex Documento TeX/LaTeX.
audio/basic au snd File audio.
audio/x-wav wav File audio.
image/gif gif Immagine GIF.
image/jpeg jpeg jpg Immagine JPEG.
image/tiff tiff tif Immagine TIFF.
image/x-xwindowdump xwd Immagine X Window Dump.
text/html html htm Testo formattato in HTML.
text/plain txt Testo puro.
video/mpeg mpeg mpg mpe Animazione MPEG.
video/quicktime qt mov Animazione Quicktime.

I tipi MIME sono organizzati mediante due parole chiavi separate da una barra
obliqua. Esse indicano il tipo ed il sottotipo.
7) Come avviene la comunicazione su Internet
Una volta dati gli indirizzi di Internet bisogna avere un protocollo per descrivere
come un messaggio può essere inviato dall'uno all'altro o, più precisamente, da una
macchina con un indirizzo a una con un altro. Il protocollo più usato che descrive
questo meccanismo è il Tcp. I messaggi vengono quindi messi in pacchetti in grado
di essere trasportati su Internet attraverso un percorso definito dai router. Questi sono
elaboratori che collegano le varie parti di Internet e contengono delle informazioni su
dove, presumibilmente, potrebbe essere un indirizzo di una data classe. Quando
arriva loro un messaggio, cercano di ritrasmetterlo più o meno verso il destinatario
(cercando di escludere i percorsi dove già viaggiano troppi pacchetti o quelli in cui si
hanno degli errori). Ogni router, in un'interpretazione ottimale, fa avvicinare il
messaggio al destinatario fino a quando viene raggiunto un router posto sulla stessa
rete locale che può quindi far arrivare l'informazione alla destinazione finale.

Richiesta
Una volta che si è instaurata una connessione tra il browser ed il server, tramite il
protocollo http il client effettua la sua richiesta.
In questo protocollo per dare una certa formattazione alla richiesta e alla risposta
vengono usati dei caratteri speciali : CR LF e SP (Carriage Return, Line Feed,
Space).
La richiesta di un client ha la seguente struttura :
Request-Line +
((general header field or request header field or entity header field) CRLF)
CRLF
[corpo del messaggio]
Il corpo del messaggio è costituito dai dati effettivi da trasmettere: input di
programmi o informazioni da salvare sul server destinatario per conto del client.

Request line
Ha la seguente struttura :
Metodo SP Request-URI SP Versione-HTTP CRLF
 
Metodi
I metodi indicano l’operazione che deve essere eseguita sulla risorsa identificata dal
Request-URI.
Nel campo Metdo della Request-Line appare uno solo dei seguenti metodi :
"OPTIONS", "GET" ,"HEAD", "POST", "PUT" ,"DELETE" ,"TRACE",
"CONNECT".
IL metodo utilizzato viene riconosciuto dal server se è implementato su di esso
altrimenti il server restituisce un intero che indica la non implementazione del
metodo specificato.
Il metodo "GET" è sempre supportato da qualsiasi server mentre gli altri sono
opzionali.

Request-URI
Il Request-URI (Uniform Resource Identifier) indica la risorsa su cui applicare la
richiesta.
In questo campo può apparire una delle seguenti opzioni :
"*", absoluteUri, AbsolutePath.
L’asterisco "*" indica che la richiesta non deve essere applicata ad una particolare
risorsa, ma al server stesso.
 
Risposta
Una volta ricevuta la richiesta il server risponde con un messaggio di risposta.
Esso ha il seguente formato :
Status-Line +
( (general-header or response-header or entity header) CRLF)
CRLF
[ corpo del messaggio ]
Il corpo del messaggio contiene i dati effettivamente richiesti dal client: i documenti
ipertestuali.
 
Status Line
Ha la seguente struttura :
Versione-HTTP SP Status-Code SP Reason-Phrase CRLF

Status-Code e Reason-Phrase
Lo Status-Code è un codice a tre cifre che ha la funzione di fornire al client delle
informazioni di stato riguardo all’esito della ricezione della richiesta.
Associato ad ogni codice abbiamo la "reason-Phrase" che è una piccola descrizione
del significato del codice destinata all’uso umano.
Il primo digit dello Status-Code definisce 5 classi di risposta, mentre gli ultimi due
digit non hanno nessuna categorizzazione.
-1xx : Informazione - richiesta ricevuta e continuo processo
-2xx : Successo - L’azione è stata ricevuta, capita e accettata
-3xx : Ridirezione - C’è bisogno di altre informazioni per completare la richiesta
-4xx : Client Error - Errori nella richiesta
-5xx. Server Error - Il server fallisce

Campi del messaggio

General header field


Questi campi sono generali nel senso che sono applicabili sia alla richiesta che alla
risposta del server. Essi vengono applicati solo al messaggio trasmesso :
Cache-control, Connection, Date,Pragma, Trailer, Transfer-Encoding, Upgrae, Via,
Warning. 
Request header field
I request-header-field passano al server ricevente delle informazioni addizionali
inerenti alla richiesta ed al client stesso.
Esse sono :
Accept, Accept-charset,Accept-Encoding, Accept-Language, Autorization, Expect,
From, Host, If-Match, If-Modified-Since, If-None-Match, If-Range, If-Unmodified-
Since, Max-Forwards, Proxy-Autorization, Range, Referer, TE, User-Agent.

 Response header field


Questi campi servono per passare al client ulteriori informazioni che non possono
risiedere nello Status-Code .
Essi sono :
Accept-Ranges, Age, Etag, Location, Proxy-Authenticate, Retri-After, Server, Vary,
WWW-Authenticate.

Entity header field


Questi campi danno delle informazioni inerenti all’entità da trasferire identificata
dalla richiesta :
Allow, Content-Encoding, Content-Language, Content-Length, Content-Location,
Content-MD5, Content-Range, Content-Type,, Expires, Last-Modified, extension-
header.

Potrebbero piacerti anche