Tecnologia di Internet
 
Il web browser
Client-side e server-side
In Internet, e in generale quando si ha a che fare con architetture client-server, ricorrono spesso i termini client-side e server-side. Letteralmente significano rispettivamente “dalla parte del client” e “dalla parte del server”, nel senso di azioni o eventi che accadono sul client o sul server.

Per esempio, nel web, gli script JavaScript sono client-side perché vengono eseguiti nel browser (la parte client del web). Al contrario, gli script CGI sono server-side perché vengono eseguiti sul server. Gli applet Java possono essere sia server-side che client-side, secondo che vengano eseguiti sul server o sul client. In questa pagina ci occupiamo di quello che si può fare nel browser, cioè dei linguaggi e degli strumenti client-side.

Come funziona un browser
Il web utilizza una architettura client-server e il browser è la parte client di tale architettura. La funzione principale del browser consiste nel richiedere, mediante un URL, un file HTML al server, e, una volta ricevuto il file, visualizzarlo, interpretando i tag HTML. Normalmente la pagina da visualizzare conterrà anche immagini GIF e JPEG. Il browser richiede anche queste immagini al server e le visualizza.

Nel caso più semplice di pagine statiche (cioè realizzate in precedenza e memorizzate nel server) il funzionamento è questo:

  • il browser richiede al server una pagina HTML
  • il server recupera la pagina HTML e la spedisce al browser
  • il browser richiede altre risorse (immagini) contenute nella pagina HTML
  • il server fornisce queste risorse al browser che visualizza la pagina

Il browser ha quindi i seguenti compiti

  • richiedere le risorse a cui è interessato al server
  • ricevere tali risorse
  • visualizzarle
Le risorse in arrivo al browser
Non tutti i file in arrivo al browser sono HTML, GIF e JPEG. In realtà il browser richiede e riceve in continuazione anche file PDF, PostScript, AIFF, ZIP, SIT, MP3, MPEG e così via. Per ognuno di questi file l’utente può prevedere un utilizzo diverso, che potrà essere
  • visualizzare il contenuto del file nella finestra del browser
  • salvare il file su disco
  • passare il file ad un plug-in
  • passare il file ad un helper

In quale modo il browser riesce a sapere che tipo di file gli viene spedito dal server e quale uso farne?

Ogni sistema informatico ha un metodo per indicare, riconoscere e comunicare il tipo di un determinato file (per esempio se si tratta di un file di testo, di una immagine TIFF o di un file audio).

Così, il sistema operativo Windows riconosce il tipo di file dal suffisso del nome (detto anche “estensione”). Se il nome di un file ha il suffisso .doc, Windows sa che si tratta di un file di testo creato con Word; se ha il suffisso .xls, Windows lo identifica come file di Excel.

MacOS, il sistema operativo di Macintosh, usa una tecnica diversa e non identifica il file dal suo suffisso ma dalla sigla del tipo (type) e dalla sigla del programma creatore (creator), due informazioni memorizzate all’interno del file stesso. Per esempio un file Word ha tipo W8BN e creatore MSWD mentre un file Excel ha tipo XLS8 e creatore XCEL.

Unix riconosce invece il file da alcuni caratteri posti all'inizio.

Tipo e creatore di un file MacOS possono essere esaminati e modificati con ResEdit e con GoLive.

Sopra un file Microsoft Word esaminato con ResEdit, sottoa un file Acrobat PDF esaminato con GoLive.

Il tipo MIME
Su Internet, e in particolare su web, il tipo di file viene comunicato mediante un’altra tecnica, il cosiddetto metodo MIME. Le informazioni MIME sono informazioni generali (che comprendono, oltre al tipo MIME, anche altre proprietà del file) sviluppate inizialmente per le mail (MIME sta per Multipart Internet Mail Extension) e successivamente trasferite anche al web.

Possono essere inserite in ogni protocollo client-server che richiede la trasmissione di diversi tipi di dati. Tuttavia non tutti i protocolli le usano: per esempio FTP non trasmette informazioni sul tipo di file, spetta all’utente il controllo sui file che trasmette e riceve. Il protocollo HTTP utilizza solo il tipo MIME e ignora le altre informazioni MIME.

L’informazione MIME relativa al tipo di file sono due parole di tipo generale/specifico. Ecco alcuni esempi:

Tipo MIME Tipo Sottotipo Descrizione
text/plain text plain file di solo testo non formattato
text/html text html file di testo HTML
audio/midi audio midi file suono midi
image/tiff image tiff immagine tiff

Quando un browser richiede un file al web server, quest’ultimo utilizza il suffisso del file (se esiste, e/o tipo e creatore se il sistema operativo del server è MacOS) per determinare, con l’aiuto di una.tab, il tipo MIME del file da spedire. Questa indicazione viene trasmessa al browser assieme al file utilizzando il protocollo HTTP, che è predisposto per utilizzare i tipi MIME, ma non per utilizzare il resto delle informazioni MIME. Se il web server non è in grado di determinare il tipo del file (per esempio perché il file non ha suffisso, oppure perché la.tab non ha un riferimento per quel suffisso) utilizza un tipo default, solitamente text/html o text/plain.

Dall’altra parte, il client, cioè il browser, ha a disposizione un’altra.tab di tipi MIME con l’aiuto della quale decide come utilizzare il file in arrivo. Le possibilità sono:

  • visualizzarlo direttamente nella finestra;
  • salvarlo su disco;
  • passarlo ad una applicazione esterna (helper);
  • passarlo ad un plug-in;
  • chiedere all’utente cosa vuol fare.

Per esempio, quando un browser Netscape Navigator richiede a WebStar (un web server di StarNine che gira su piattaforma Macintosh) il file melodia.aif, WebStar consulta la sua.tab dei suffissi (qui sotto), localizza il file melodia.aif, legge i dati e li spedisce al browser con il tipo MIME audio/x-aiff.

La mappa dei suffissi di WebStar. Al suffisso .aif corrisponde il tipo MIME audio/x-aiff.
Il file arriva quindi a Netscape Navigator con il tipo MIME audio/x-aiff: questa informazione si può controllare in View > Page Info.

Netscape consulta la sua tabella dei tipi MIME dalla quale apprende che il file deve essere passato al plug-in QuickTime (altre possibilità: può essere passato ad una applicazione o salvato su disco; oppure si può chiedere all’utente cosa desidera fare con questo file). A questo punto il file melodia.aif viene gestito dal plug-in indicato (QuickTime), che apre una finestra nel browser per il controllo del file (volume, avvio, stop, ecc.).

Le Preferenze di applicazione di Netscape Navigator 4.7
Si noti che la trasmissione del tipo MIME del file viene fatta da HTTP, quindi è necessario che la trasmissione avvenga con questo protocollo. Se il file viene aperto in locale, senza protocollo HTTP (cioè con un URL di tipo file), il meccanismo descritto non ha luogo, e per il riconoscimento del tipo di file viene utilizzato il meccanismo proprio del sistema operativo.

In poarticolare, le informazioni che il server deve avere per il tipo MIDI sono

MIME type = audio/midi, audio/x-midi o application/x-midi
action = binary
suffix = .mid
type = midi

Tuttavia, il tipo MIME si può anche inserire nella pagina web (type="audio/midi" nel tag EMBED).

Se il browser non riconosce (cioè non ha nella.tab) il tipo MIME del file in arrivo, può fare due cose: o cerca di ricavare il tipo del file dal suffisso o da qualche altra caratteristica del file oppure avvia una azione di default (solitamente cercando di visualizzare il file come testo, il che dà luogo a una serie di strani caratteri nella finestra, se il file è binario).

Informazioni online

I tipi MIME sono definiti dalla comunità web, oppure da società come Microsoft o Apple. Non esiste una lista esaustiva dei tipi MIME in uso, ma un lungo elenco si può trovare in http://www.isi.edu/in-notes/iana/assignments/media-types/media-types.

  • http://home.netscape.com/assist/helper_apps/mime.html
  • http://www.cs.ruu.nl/wais/html/na-dir/mail/mime-faq/.html
  • ftp://ftp.uu.net/usenet/news.answers/mail/mime-faq/mime0
Gestione dei file: helper
Una volta che il tipo del file è stato riconosciuto, viene anche determinato chi lo deve gestire. Se non è il browser né l’utente, ci sono due possibilità: o viene gestito da un programma helper o da un plug-in.

I plug-in sono applicazioni che permettono di aprire la finestra di gestione del file all’interno della finestra del browser stesso. L’helper è un programma esterno, che apre una propria finestra indipendente dal browser, il quale fornisce solo l’input.

Fino a qualche tempo fa, e in una certa misura ancor oggi, i browser si appoggiavano a programmi esterni per gestire i file che non riuscivano a trattare internamente. Per esempio, tipicamente un browser non è in grado di suonare un file audio che arriva da un web server. Invece, il browser sa che quando incontra un file audio deve lanciare (se disponibile nel disco locale, naturalmente) un programma separato, indipendente (un helper) che sia in grado di suonare il file audio, in una finestra separata.

La tendenza attuale è invece quella di cercare di utilizzare il più possibile la stessa finestra del browser, per esempio con l’uso dei plug-in.

Plug-in

I plug-in, disponibili per la prima volta in Netscape Navigator 2, costituiscono un modo per estendere le funzionalità di un browser senza doverlo modificare. I plug-in più comuni sono quelli che consentono al browser di suonare un file audio e di visualizzare un file video. I plug-in possono essere catalogati nelle seguenti categorie

  • Audio e video
  • 3D e animazione
  • Home and Office
  • Image
  • Presentation

ed esistono in varie versioni per i vari sistemi operativi.

Per esempio Netscape Navigator (per Windows e Macintosh) gestisce i file audio mediante plug-in. Il plug-in di default di Navigator, LiveAudio, supporta questi formati audio

  • MIDI (.mid, .midi, .kar), tipi MIME: audio/x-midi, audio/midi
  • AU (.au), tipo MIME: audio/basic
  • Wave (.wav), tipi MIME: audio/x-wav, audio/wav
  • AIFF (.aiff, .aif), tipi MIME: audio/x-aiff, audio/aiff

Microsoft Internet Explorer può gestire i file audio mediante plug-in o, per default, con il controllo ActiveMovie (basato sulla tecnologia ActiveX di Microsoft) incorporato in Internet Explorer dalla versione 3. ActiveMovie supporta i seguenti formati multimediali

  • MPEG-1 (.mpg, .mpeg, .mpv, .mp2, .mpa)
  • Audio-Video Interleaved (.avi)
  • Nonproprietary QuickTime files (.mov)
  • Wave (.wav)
  • AU (.au, .snd)
  • AIFF (.aif, .aiff)

Altri plug-in che possono essere usati per l’audio (sia su Macintosh che su Windows)

E' possibile scrivere una routine JavaScript per determinare quali plug-in sono installati nel browser.

Informazioni online

   
Home | Commenti a Mauro Boscarol | Ultimo aggiornamento 22 dicembre 2000