Re: I-D ACTION:draft-reschke-http-etag-on-write-00.txt

Julian Reschke wrote:

    >> Well, that's why I was submitting a draft -- feedback is needed. I
    >> realize that Entity-Transform currently may violate the KISS principle,
    >> maybe I should go back to it's minimal form of...:
    >>
    >> Entity-Transform    = "Entity-Transform" ":" 1#transform-info
    >> transform-info      = "identity" | "unspecified"
    
    Hmm, I think this would still need to be
    
    transform-info      = "identity" | "unspecified" | extension
    extension           = token
    
    ...so it *can* be extended later.
    
    More feedback appreciated... Do people think it's worthwhile for a 
    server to be able to specify the kind of transform?

I thought about this a little more.  There's a potential problem
with simply specifying the grammar as

     Entity-Transform    = "Entity-Transform" ":" 1#transform-info

The problem is that this (1) allows multiple transforms, and
(2) doesn't explicitly specify what order they were applied in.

But one could easily imagine that, if a server does apply
multiple transforms, they are not commutative.  For example
(not that you would ever expect this combination), "uuencode"
followed by "remove-nasty-words" is not the same as
"remove-nasty-words" followed by "uuencode".

See the language in RFC2616 for Content-Encoding as an example
for how to solve this problem:

   If multiple encodings have been applied to an entity, the content
   codings MUST be listed in the order in which they were applied.

Without such an explicit requirement, one could imagine
implementations that use other orders (such as: alphabetical,
or reverse-order).

This is another case of where an incautious over-application
of the KISS principle could lead to ambiguity and hence
complexity.

-Jeff

Received on Thursday, 10 August 2006 22:35:12 UTC