Device Independent Web Server

Synopsis

A web server which uses content negotiation to return different representations of a web resource depending on the HTTP Accept header passed from a user agent.

Rationale

The web is often assumed to be a collection of web pages, but really it is a collection of resources identified by Universal Resource Identifiers (URIs), a web page is only one representation of an abstract resource.

Other possible representations include plain text, a snythesised voice, a vector image or a 3D environment. The user agent should be able to specify preference of a particular representation format based on its own capabilities or the user's choice.

Features

Each representation of a resource could be stored as static files or dynamically generated. The dynamic generation could use a generic XML format as a base (e.g. DIAL), and use XSLT to transform that base format into different representations based on XSL stylesheets.

The preferred representation or a list of accepted formats in order of preference can be specified by MIME type by the user agent with content negotiation using an HTTP Accept header. When the device independent web server receives a request, it parses this Accept header, chooses the most appropriate response format and either transforms a representation from a base format or returns a static or cached version of the resource.

Developer Resources

Implementation