Now teaching Mobile Web Development at Portland Community College

Register now for Mobile Web Development and Advanced Mobile Web Development for Smartphones for Fall 2009. Classes meet 5:30pm - 9:30pm once a week for six weeks in Portland, Oregon.

See the Mobile Web Development curriculum or contact me for details.

how to develop standards-compliant and usable mobile web applications

Tag: mobile MIME types

No Gravatar

Mobile MIME types identify the format of mobile web content: textual mobile markup documents, binary viewable and playable content like ringtones, wallpaper and videos and binary executable mobile applications intended for mobile devices.



Common Mobile MIME Types

Here are the most common mobile MIME types:

MIME Type(s) File Extension(s) File Contents Common Uses
application/vnd.wap.xhtml+xml
application/xhtml+xml
xhtml XHTML-MP markup Mobile web pages
text/html html HTML Mobile web pages for smartphones
text/css css CSS1, CSS2 and Wireless CSS Cascading style sheets for mobile web documents
text/vnd.wap.wml wml WML markup Lightweight mobile web pages for older or low-end mobile devices
image/vnd.wap.wbmp wbmp Wireless Bitmap Image Black-and-white image format used for older or low-end mobile devices that support only WML in the microbrowser.
text/vnd.wap.wmlscript wmls WML Script Scripting language used with WML
text/vnd.sun.j2me.app-descriptor jad Java Application Descriptor Metadata about a Java ME application for mobile devices. Contains URI to a JAR file that is the mobile application binary.
application/java-archive Binary Java Archive Archive of compiled binary Java class files. Used as packaging format for Java ME mobile applications.
audio/x-midi mid MIDI Audio File MIDI ringtones
audio/vnd.qcelp qcp QCELP Audio file mobile audio
video/3gpp 3gp 3GP Video File 3GP encoding for mobile video files
video/mp4 mp4 MPEG4 Video File MPEG4 encoding for mobile video files
x-nokia-widget wgz Nokia Widget Archive Home screen widget for Nokia mobile phones
application/vnd.wap.mms-message mms Binary MMS in MMS Encapsulation Protocol format Viewing and sending MMS messages
application/vnd.symbian.install sis Symbian installer Older file format for Symbian application installers
x-epoc/x-sisx-app sisx Symbian installer Newer file format for Symbian application installers



How Mobile MIME Types are Used in HTTP

MIME types are used in several ways during a HTTP transaction between a mobile web browser and web server:

Mobile Web Browser: The mobile web browser sends a list of supported MIME types as the value of the Accept HTTP request header. The Accept request header value advertises the mobile content types supported on the device. Web servers optimized for delivering mobile content use the header’s value (and also a device database) to determine the best content to send in the HTTP response.

Web Server: The MIME type associated with a web document is used as the value of the Content-Type HTTP response header. The web server is configured to associate file extensions of mobile content with mobile MIME types. (Web servers generally do not come pre-configured to support mobile MIME types. The webmaster must manually add the MIME types.) When the web server sends a file to a mobile browser and uses the correct mobile MIME type, the mobile browser client knows how to interpret the file: as a web page, mobile application, wallpaper, ringtone, video, etc.

Web Server Template Languages: The MIME type associated with for a document can be manually overridden using a server-side template language like PHP. Here is a PHP example that uses the built-in header function to override the MIME type for a HTTP response:


<?php
header('Content-Type: text/vnd.wap.wml');
?>

It is important to correctly configure mobile MIME types on the web server because the mobile browser uses the MIME type (value of Content-Type HTTP response header) to determine whether the web file is viewed in the browser or by launching phone UI (to set a GIF as wallpaper, etc.) or by launching a native application (playing a video in the video player, etc).

Read more about web server configuration for details about adding MIME types into Apache and IIS web servers.

Bookmark and Share
VN:F [1.5.2_773]
Rating: 4.5/5 (2 votes cast)
No Gravatar

This post is a quick tutorial about adding support for mobile MIME types in the Apache web server using .htaccess configuration. See this related page for comprehensive list of mobile MIME types for XHTML-MP, WML and binary files.

The Apache web server uses .htaccess files to provide a lightweight method of updating and overriding web server configuration inside a directory. A .htaccess file is an ASCII file containing plaintext configuration directives read by Apache when serving files in the directory. On UNIX servers, .htaccess is a hidden file by default, so be sure to use the shell command ‘ls -la” to view hidden and visible files to check whether a directory contains the file.

Apache extension modules specify configuration directives (or statements) found in .htaccess files. The mod_mime extension defines the AddType directive that manages associating MIME types (or content types) with file extensions.

The AddType directive uses this text format to specify the MIME type and a space-delimited list of associated file extensions:

AddType <MIME type> <file extension> [<file extension>] …

When a HTTP request is made for a file with the configured file extension, Apache serves the content and sends the MIME type as the value of the Content-Type HTTP response header.



Here is an example of using AddType directives .htaccess files to introduce new content types for mobile markup mapped to file extensions. One directive is allowed per line of the configuration file:


# Add Mobile MIME types for xhtml, wml, wbmp and wmls file extensions
AddType application/vnd.wap.xhtml+xml .xhtml
AddType text/vnd.wap.wml .wml
AddType image/vnd.wap.wbmp .wbmp
AddType text/vnd.wap.wmlscript .wmls

A single AddType directive can associate multiple file extensions with the same MIME type. Here is an example that associates xhtml and xhtm file extensions with the application/vnd.wap.xhtml+xml content type:


AddType application/vnd.wap.xhtml+xml .xhtml .xhtm



The configuration in .htaccess files affects the directory in which the file is placed and all subdirectories. But, there is no inheritance for directives in .htaccess configuration. The .htaccess file nearest to the target web document is the configuration file used to serve the document. Make sure to upload your .htaccess file into the appropriate web server location.

There are performance implications when using multiple .htaccess files across a website, especially if a single Apache instance hosts multiple domains. Because configuration is distributed across the file system, Apache must inspect the directory hierachy to determine which .htaccess file applies for a HTTP request. Think carefully when creating multiple .htaccess configuration files and centralize wherever possible.

Also, the .htaccess file must be readable by the UNIX user running the Apache httpd process.

Bookmark and Share
VN:F [1.5.2_773]
Rating: 5.0/5 (1 vote cast)