Pagina 8 di 8
HTTP
L'HyperText Transfer Protocol (HTTP)
è il protocollo utilizzato per la navigazione sul World Wide Web (WWW).
Il protocollo HTTP è il classico
protocollo connection oriented, o a richiesta e risposta.
Il protocollo è stato specificato
inizialmente dalla RFC 1945, resa obsoleta dalla 2068. Attualmente è alla sua
terza revisione. La RFC di riferimento attuale per l'HTTP/1.1 è la 2616.
Posta elettronica (Electronic
Mail - E Mail)
Un'altra applicazione molto usata
sulle reti TCP/IP è la posta elettronica. Con l'esplosione di Internet
l'uso della posta elettronica è diventato di uso comune per una serie di motivi:
·
è il mezzo più economico e sicuro· per lo scambio di informazioni;
·
è il mezzo più veloce, essendo in genere la consegna garantita in tempi dell'ordine
dei minuti;
·
il destinatario può ricevere la posta anche se non è al proprio posto abituale
di lavoro;
· si
possono utilizzare dei meccanismi per garantire la trasmissione in maniera protetta
delle informazioni.
Per contro esistono anche dei dati
negativi, quali:
·
non è possibile leggere la posta elettronica senza avere accesso ad un computer;
·
l'assenza del destinatario molto raramente può essere conosciuta;
·
la facilità di accesso alla posta elettronica ha portato ad abusi del tipo catena
di S. Antonio.
L'SMTP (Simple Mail Transfer Protocol - RFC 821) è il
protocollo utilizzato per trasmettere messaggi di posta elettronica, utilizzando
il protocollo TCP per il trasporto.
Un server SMTP è un programma sempre
attivo (su Unix non è sempre vero nel caso si utilizzi inetd) in ascolto
sulla porta 25.
POP3
Il POP3 (Post Office Protocol version
3 - RFC 1939) è il protocollo più comunemente usato per prelevare i messaggi
di posta elettronica.
In una sessione POP3 si seguono i
seguenti passi:
· Il
client si connette alla porta 110 del server.
· Il
server invia un messaggio di saluto.
· Si
inizia la sessione vera che consiste di una fase di AUTHORIZATION e di una successiva
di TRANSACTION.
· Allo
stato di TRANSACTION si passa solo dopo aver superato con successo lo stato di
AUTHORIZATION, fornendo la propria identificazione.
Uuencode è uno dei metodi usati per conventire dati binari
in testo per poter spedire documenti come allegati al messaggio di posta elettronica.
Come dice il nome
stesso (Unix to Unix ENCODE) il meto è stato sviluppato originariamente su macchine
Unix per poter trasferire dati in maniera sicura da una macchina all'altra.
La macchina che riceve i dati deve
ovviamente avere una programma analogo (Uudecode) per poter decodificare
i dati.
Come è facilemente intuibile con
questo metodo la mode di dati da trasferire aumenta, ma aumenta di pari passo
la sicurezza che i dati vengano trasferiti senza perdita di informazione.
Altri metodi alternativi per il trasferimento
di allegati sono il BinHex (sviluppato dalla Apple per i sistemi Macintosh)
ed il metodo MIME (Multipurpose Internet Mail Extensions - RFC
2045) sviluppato appositamente per permettere la formattazione di messaggi non
ASCII su Internet.
Quest'ultimo viene utilizzato anche
per il trasferimento di file attraverso il protocollo HTTP.
World Wide Web
Il World Wide Web ha iniziato
ad avere diffusione all'inzio degli anni 90 sulla spinta del protocollo HTTP.
Attualmente è noto come WWW, W3
o semplicemente Web: in ogni caso sono sinonimi del World Wide Web.
Infatti il WWW non è altro che una
vasta rete di server HTTP in grado di comunicare tra di loro grazie ad Internet.
Il Web non è Internet: è solo
uno dei servizi che è possibile trovare su Internet.
Attualmente il temine usato dagli
utenti del Web per indicare che si consultano documenti sulla rete è navigare
(in inglese surfing).
Per poter accedere al Web bisogna utilizzare delle applicazioni
sviluppate ad hoc, chiamati browser.
Il progenitore di tutti i browser
esistenti è stato Mosaic sviluppato all'NCSA (National Center for Supercomputing
Applications) presso l'università dell'Illinois.
I browser più diffusi sono
· Netscape
Navigator (o Communicator)
· Microsoft
Internet Explorer
· Opera
Per poter navigare sul Web non è ovviamente
necessario avere un browser, potendo ovviamente farlo anche in modalità
linea di comando.
Come detto non è necessario avere
un browser per poter navigare sul Web, ma senza un browser risulta oltremodo
scomodo poter consultare i collegamenti ipertestuali (link) presenti nei documenti
acceduti.
I link sono l'aspetto più importante
legato al Web, in quanto permettono di collegare tra di loro file situati ovunque
sul Web.
La possibilità di avere questi collegamenti
permette di creare documenti come unione di più documenti, ciascuno curato da
una persona (o gruppo di persone) diversa, e avere in linea sempre la versione
aggiornata senza bisogno di alcun lavoro di sincronizzazione.
I formati dei file accessibili sul Web possono essere i più svariati,
i principali sono:
· pagine
HTML, scritte utilizzando il linguaggio HTML (dette anche pagine Web)
· immagini
(generalmente GIF o JPEG, ma anche icone, bitmap etc)
· file
testo (i file .txt su Windows)
In aggiunta a questi
esistono i cosiddetti file multimediali, ovvero file contenenti filmati e suoni.
Per poter accedere ad una pagina
Web è necessario che essa sia pubblicata sul Web ovvero che essa sia data
ad un server HTTP che ne gestisca l'accesso.
La pagina Web può essere resa accessibile
anche mediante altro protocollo (per es. FTP), ma in questo caso si perde il
significato intrinseco di pagina Web.
In genere i collegamenti di tipo
FTP sono utilizzati per mettere a disposizione file che devono essere trasferiti
sulla macchina dell'utente Web per poter poi essere utilizzati (per es. archivi
compressi da applicazioni tipo Winzip o Gzip, documenti da leggere utilizzando
appositi Word Processor quali MsWord o Frame Maker, etc).
La pagina Web è generalmente una pagina HTML contenente immagini
e link ad altre pagine Web.
Ogni pagina Web è identificata da
un URL (Uniform Resource Locator) che non è altro che l'indirizzo
univoco che identifica quella sull'intero Web.
Il formato di una URL è:
protocollo:indirizzo
il protocollo può essere:
Ø http
Ø ftp
Ø file
Ø gopher
Ø telnet
Ø news
Ø mailto
il protocollo è separato dall'indirizzo
dal carattere due punti ( : ); nel caso dei primi quattro il carattere
due punti è seguito da due caratteri slash (//).
Alla fine dell'indirizzo, un ulteriore
carattere slash indica l'inizio del file Web che si richiede al server
HTTP.
Es.:
http://www.altavista.com/index.html
Il protocollo HTTP, cui la stragrande maggioranza delle pagine
Web fa riferimento, utilizza come porta di default per le comunicazioni, la porta
numero 80.
È possibile però impostare in server
HTTP in modo da renderlo su una porta diversa da quella di default.
In tal caso il client (il browser
utilizzato per la navigazione) deve essere informato del fatto, per evitare che
spedisca le proprie richieste alla porta 80, porta su cui potrebbe non rispondere
nessuno.
Per far ciò, l'URL deve essere scritta
come segue:
http://www.nome.it:80000/
In pratica, alla fine dell'indirizzo
e prima dello slash finale, va aggiunto il carattere due punti seguito
dal numero della porta su cui il server è in attesa per poter soddisfare le richieste.
HTML
Abbiamo detto che le pagine Web
sono scritte in HTML: ma cos'è l'HTML?
HTML è l'acronimo per HyperText
Markup Language, quindi l'HTML è un linguaggio per il contrassegno
di file ipertestuali.
HTML è quindi un linguaggio di contrassegno
non di programmazione.
Con HTML è possibile presentare
i propri documenti formattati in maniera personale, ma non è assolutamente
possibile scrivere un programma in HTML.
HTML Un po' di storia
L'HTML, così come il WWW, sono nati
alla fine degli anni 80 presso i laboratori di fisica nucleare del CERN di Ginevra.
Nel 1990 Tim Berners-Lee tenne ufficialmente
a battesimo il World Wide Web che doveva servire a tutte le comunità di ricercatori
e scienziati sparsi per il mondo (da cui Worldwide) per poter scambiare nel più
breve tempo possibile e nella maniera più completa le proprie esperienze sulle
ricerche in corso.
Tim Berners-Lee insieme a Robert
Cailliau scrisse il primo client WWW (un browser-editor che girava sotto NeXTStep)
ed il primo server insieme alla maggior parte del software di comunicazioneche
definiva URL, HTTP ed HTML.
Nel 1994 Tim Berners-Lee e gli altri
partecipanti al progetto fondarono il W3C (World Wide Web Consortium), che è attualmente
il responsabile degli standard HTTP, HTML e delle tecnologie per il Web.
SGML - Il padre dell'HTML
L'SGML (Standard Generalized Markup
Language) è una famiglia di linguaggi di Markup di cui HTML è uno dei membri.
In pratica l'SGML è una specifica
di linguaggi di contrassegno che permette ad un utente di definire il proprio
linguaggio di contrassegno.
L'HTML è quindi una istanza dell'SGML.
Evoluzione dell'HTML
La prima versione dell'HTML, nota
semplicemente come HTML senza specifica della versione, non si differenzia in
maniera sostanziale dalla versione corrente che è la 4.0.
I tag definiti nella versione iniziale
del linguaggio sono rimasti anche nella versione attuale, e questo comporta che
una vecchia pagina scritta la versione 1.0 dell'HTML è ancora correttamente visualizzabile
da un browser basato sull'ultima versione.
Non è ovviamente vero il viceversa,
per cui una pagina scritta secondo gli standard della 4.0 difficilmente porterà alla
visualizzazione di qualcosa di gradevole in vecchio browser (come per es. Netscape
2.0 o IE 3.0).
Dalla versione 1.0 si è passati
alla versione HTML+ e successivamente alla HTML 2.0.
È a questo punto che i produttori
dei browser maggiormente diffusi incominciano a far sentire la propria influenza
sullo sviluppo del linguaggio. Infatti la release HTML 3.0 non sarà mai supportata
da nessun browser commerciale (solo Arena, sviluppato dagli stessi membri del
consorzio W3C, supporterà questa versione) e di conseguenza la successiva versione
(HTML 3.2) è di fatto l'acquisizione da parte del linguaggio di una serie di
estensioni apportare dai produttori.
L'ultima versione del linguaggio
è la 4.0 ed aggiunge una serie di estensioni al linguaggio.
In tale versione vengono accolte
alcune estensioni ad HTML 3.2 quali i frame. Viene inoltre raccomandato l'utilizzo
dei fogli di stile (CSS - Cascading Style Sheet) per la formattazione del documento.
La funzione principale è quella di essere un linguaggio universale
per la classificazione delle varie parti di un documento.
Essendo un linguaggio di Markup,
non è legato a nessuna piattaforma in particolare, in quanto una pagina HTML viene
sempre distribuita in formato sorgente ed è compito del browser visualizzare
correttamente tutti i tag contenuti nella pagina.
Teoricamente la visualizzazione
di una pagina HTML dovrebbe essere indipendente dal browser, ma in effetti non
lo è per una serie di motivi, primo fra tutti è quello che non esiste alcuno
standard che imponga al browser di visualizzare un tag con un font anziché con un
altro, oppure utilizzando una dimensione anziché un'altra.
I tag sono l'insieme dei simboli definiti in
HTML e che hanno un significato speciale.
Un tag inizia sempre con il simbolo
minore (<), è seguito da una parola riservata, ed è chiuso dal carattere maggiore
(>).
Le parole riservate che compongono
i tag possono essere sia parole vere e proprie (per es. BODY), o abbreviazioni
in genere significative. Per esempio HR è una parola chiave per un tag che disegna
una linea orizzontale nella pagina e sta per Horizontal Rule (letteralmente linea
orizzontale), B sta per Bold e serve per evidenziare in grassetto una parte di
testo.
Un tag dovrebbe essere chiuso
da un tag analogo a quello di apertura, con la sola differenza del carattere
slash che precede la parola chiave: es. <BODY> ... </BODY>.
Il condizionale dovrebbe è stato
usato in quanto non esiste alcun parser che possa validare la correttezza di
una pagina HTML, ed i browser nel caso incontrino un tag aperto ma non chiuso
possono cercare di dedurre quale sia la soluzione migliore per poter comunque
visualizzare la pagina.
Le differenti interpretazioni da
parte dei browser portano quindi a risultati diversi nella visualizzazione.
Nozioni di base sulle reti –by
Enzo Maioli