MIME type ed estensione dei files in XHTML MP
Quando due programmi dialogano tra loro attraverso la rete Internet (uno invia un file e l'altro lo riceve), il programma che invia il file deve specificarne il tipo secondo lo standard MIME; in questo modo il programma che riceve i dati può capire come trattarli. Con lo standard MIME è possibile inserire in un qualsiasi messaggio e-mail, oltre al testo, anche files contenenti immagini, segnali audio e video; il software che gestisce la posta non si preoccupa del contenuto del messaggio, è l'utilizzatore finale a preoccuparsi della sua opportuna decodifica in base alle specifiche di tipo inserite nel messaggio stesso.
I MIME types che possono essere utilizzati in una pagina XHTML MP sono:
- application/vnd.wap.xhtml+xml
- application/xhtml+xml
- text/html
Il MIME type specificato dall' Open Mobile Alliance (OMA) per i documenti XHTML MP è application/vnd.wap.xhtml+xml. Questo MIME type è richiesto da alcuni browser WAP (per esempio, alcuni Nokia serie 60) per poter visualizzare correttamente i documenti XHTML MP.
Un'altra opzione, potrebbe essere application/xhtml+xml. È un MIME type per la famiglia dei documenti XHTML.
In ultimo abbiamo text/html, È il MIME type per i documenti HTML.
Inserendo quest' ultimo MIME type (text/html) in una pgina XHTML MP, non c'è nessuna controindicazione in quanto le pagine sono visualizzabili nei più comuni browser senza problemi.
Alcuni browsers, come Internet Explor 6, non visualizzano documenti con un MIME type tipo: "application/vnd.wap.xhtml+xml" o "application/xhtml+xml"; apparirà una finestra di dialogo per permettere di aprire il file in un programma esterno o scegliere dove salvarlo.
Scegliere il MIME type dinamicamente
Un' altra opzione è rilevare il MIME type che può essere accettato da un browser e sceglierlo dinamicamente.
Per esempio, se il server accerta che alcuni browser accettano "application/vnd.wap.xhtml+xml" come MIME type, tutti i documenti XHTML MP saranno trasformati con questo MIME type per quel tipo browser.
Per scegliere dinamicamente il MIME type, si devono scrivere alcune linee di codice usando una tecnologia lato server (per esempio: ASP, JSP, Perl, PHP). Il codice verrà indicato di seguito. Quello che vogliamo fare, tramite la "dinamicità" della scelta è:
- ottenere il valore dell' intestazione della richiesta HTTP ricevuta. L'intestazione contiene tutti i MIME type che possono essere accettati dal browser che trasmette la richiesta.
- Se il valore dell' intestazione contiene "application/vnd.wap.xhtml+xml", settare il MIME type del documento XHTML MP su "application/vnd.wap.xhtml+xml". Altrimenti il valore dell' intestazione verrà settato su "application/xhtml+xml"; ultima possibilità è il MIME type "text/html".
Il breve codice che vedremo adesso è scritto in JSP; se si volesse utilizzare un' altra tecnologia lato server, il principio è identico, tranne la sintassi (in alcune parti):
if (acceptHeader.indexOf("application/vnd.wap.xhtml+xml") != -1)
response.setContentType("application/vnd.wap.xhtml+xml");
else if (acceptHeader.indexOf("application/xhtml+xml") != -1)
response.setContentType("application/xhtml+xml");
else
response.setContentType("text/html");
%>
Il valore dell' intestazione è ottenuto dalla richiesta HTTP. Esso è contenuto nella variabile acceptHeader:
La variabile acceptHeader è controllata per vedere se contiene le parole "application/vnd.wap.xhtml+xml" o "application/xhtml+xml". Il metodo indexOf (String str) dell' oggetto della stringa restituisce l' indice della prima occorrenza di str subtring. Se str non è stata trovata, viene restituito -1 con il metodo indexOf(String str). In altri termini, se str esiste, non verrà restituito -1.
Il metodo response.setContentType(...); è usato per settare il MIME type del documento.
Estensione dei files
Le estensioni di un documento XHTML MP possono essere: ".xhtml", ".html" e ".htm". Si possono anche usare altre estensioni, ma si deve prestare attenzione al MIME type associato; in altri termini accertarsi se è settato correttamente sul server, per quanto riguarda la configurazione dei files.
| < Prec. | Succ. > |
|---|

