Version | 1 |
---|---|
Revision | 1 |
Status | Consultative |
Date | 2007-09-27 |
Editor | Jo Rabin |
This document has the status "Consultative". This means that it is for discussion and may be substantially altered or abandoned following discussion.
There are no .mobi domain compliance implications associated with this document.
The latest version of this document is available at http://dev.mobi/files/TranscodingAndAdaptation_consultative.html
This version can be found at http://dev.mobi/files/TranscodingAndAdaptation_consultative.html
This document contains information proprietary to Mobile Top Level Domain Limited ("mTLD" or "dotMobi"). You may not modify, copy, reproduce, republish, upload, post, transmit, or distribute in any way any material from this document including code and software without the express, written consent of mTLD.
This document as a whole is copyrighted as a collective work, and individual works appearing on or accessible through this document are likewise subject to copyright protection. You agree to honor the copyrights in this document (including the selection, coordination and arrangement of the contents of this document) and in the works available on or through this document. In addition, trademarks and tradedress belonging to us or to third parties appear on this site or are accessible through this site. The fact that we have permitted you access to this site does not constitute authorization to reproduce such trademarks for any other purpose.
Copyright © 2007 Mobile Top Level Domain Limited
Providers of "made for mobile" Web sites have increasingly found that their intentions are not realised when their content in presented in certain delivery contexts (q.v.). This is as a result of components of those delivery contexts (q.v.) not realising that the intention of the providers of those sites is expressly to create a "made for mobile" experience for their users.
This document is an Addendum to the dotMobi Switch On! Web Developer Guide [SOWDG] which recommends creating one or more user experiences that are sympathetic to the user's context. It provides interim and partial guidance to providers who have followed that recommendation as to how to indicate their intentions in the presence of components of the delivery context that might alter those user experiences.
Specifically, it describes how origin servers addressable using the .mobi top level domain may indicate to components of the delivery context whether or not they vary their content in response to aspects of the HTTP [HTTP] request headers and whether or not they wish to allow their content to be transformed by components of the delivery context.
The document is produced in recognition of the work of the W3C Mobile Web Initiative Best Practices Working Group Content Transformation Task Force and is intended to be complementary to that work, to stimulate debate and encourage participation in that work.
Capitalised words, such as MUST, MAY, SHOULD, are to be interpreted in the sense defined in [RFC2119].
The following terms are used with the specific meanings indicated:
The .mobi top level domain is intended to provide an indication that providers have deliberately created a "made for mobile" experience on their Web sites. Sites addressable using the .mobi domain are required to take certain minimum steps to provide a functional user experience and are recommended to take more substantial steps to achieve this. It can be inferred from the domain name alone that providers have a commitment to providing at least a "functional user experience" to mobile users.
The purpose of this recommendation is to help providers explicitly reinforce the message conveyed implicitly by the domain name alone. It recommends the use of two existing HTTP header constructs to inform components of the delivery context of the intentions of the provider in respect of their content.
The two HTTP constructs concerned are the Cache-Control: no-transform
directive and the Vary:
header.
Vary
HTTP HeaderOrigin servers that vary the representation of their resources according to details of the HTTP request they receive SHOULD add a Vary
HTTP header to their response, informing downstream components that different representations are available.
Origin servers often adjust the representation of their content according to the value of the User-Agent
header received in the HTTP request. It is recommended that such servers add Vary: User-Agent
to their responses. Doing so informs components of the delivery context that if they have adjusted the User-Agent
header in the request then the response the Vary
header is attached to may be inappropriate, and that it was not necessarily the intention of the provider that this representation is appropriate to the user's actual delivery context.
Origin servers MAY choose to add other information to the Vary
header indicating that the response varies according to other HTTP headers.
Example: Vary: User-Agent, Accept, Accept-Language
See 14.44 Vary for more information about the Vary
HTTP header.
Cache-Control: no-transform
DirectiveBy adding the no-transform
directive to their Cache-Control
HTTP header, origin servers MAY indicate to components of the delivery context that the content of their response is to be delivered exactly as they have represented it.
Example: Cache-Control: max-age=30, no-transform
See 14.9.5 No-Transform Directive for more information
Components of the delivery context, whether or not they are in any way associated with the .mobi domain, SHOULD take the following actions on receipt of the Vary
HTTP Header and Cache-Control: no-transform
directive when received from a .mobi domain origin server.
Sites that have a .mobi domain name indicate, by this alone, that they have regard to the user's context. Components of the delivery context SHOULD exercise EXTREME CAUTION before considering altering aspects of a response and SHOULD NOT alter the contents of requests and responses without having due regard for the provider's intentions.
Vary
header The site has indicated that it varies the representation according to details of the request. Components of the delivery context MUST provide accurate details of the user's actual context, as represented by the HTTP headers in the request, in order to be confident that the provider's intentions are realised correctly.
no-transform
directive Components of the delivery context MUST NOT alter the representation of the content.
no-transform
directive but the presence of a Vary
header Components of the delivery context, MAY, with the user's consent, alter the representation. The default behaviour is that a transforming component SHOULD NOT alter representations.