Re: no-transform

Roy and I talked this morning about no-transform (and in fact, a number
of the other cache control directives).  Here is an attempt to meet his
problems with no-transform.  The current text does not motivate
the directive properly, or explain properly when you might use it
(at least in the most common situations), or deal with the fact
that it may be media-type transformations that are the biggest problem
with transformations.

I believe HTTP/1.1 as currently specified in ID04 actually requires all
content codings to be conservative, that is, must result in the same
bits being returned (the words are "without loss of information"),
so it really is a media type issue, not a content-coding issue.
Draft 04 had already tightened up requirements on possible content-codings.

As currently written, the text regarding no-transform reads:

14.9.5 Miscellaneous Restrictions

 In certain circumstances, an intermediate cache (proxy) may find it
 useful to convert the encoding of an entity-body. For example, a proxy
 might use a compressed content-coding to transfer the body to a client
 on a slow link.

 Because end-to-end authentication of entity bodies and/or
 entity-headers relies on the specific encoding of these values, such
 transformations may cause authentication failures. Therefore, an
 intermediate cache MUST NOT change the encoding of an entity-body if
 the response includes the no-transform directive.


Here is an attempt to rewrite this:

14.9.5 No-Transform Directive

 Intermediate caches (proxies) have found it useful to convert the
 media type of an entity-body under some circumstances. For example, a
 proxy might use convert image formats to other, more compact formats
 or sizes before transmission on a slow link, or to save cache space.
 HTTP has to date been silent on these transformations, but serious
 operational problems are now known to occur frequently for certain
 kinds of applications, which have failed as a result.

 Some entity-bodies must not undergo any transformation before being provided
 to applications.  Examples include: medical imagery, scientific data
 and data using end-to-end authentication, where it is important that
 the original entity-body be exactly reproduced bit for bit in the
 application.  Therefore, an intermediate cache MUST NOT change the
 media type of an entity-body if the response includes the no-transform
 directive.


Let me know of any problems.
				- Jim

Received on Thursday, 6 June 1996 07:37:54 UTC