Re: Color content negotiation

>The number of attributes a server *could* send for a particular
>document is nearly infinite; images could be selected on size and
>pixel depth; audio streams on compression methods, data rate or bits
>per sample; postscript files on version, use of color, etc.
>
>406 responses might be able to characterize these when the service
>doesn't perform any conversion, but 'accept' style negotiation works
>better in other circumstances.

I disagree.  In practice, conversion is never supplied since it
is always more scalable, and the result better tuned to the user
environment, to perform the conversion at the client end.  Thus,
client capabilities increase at a high rate while server implementations
remove functionality whenever possible.

When multiple variants are provided, they tend to fall into a
spectrum for each platform (i.e., GIF, JPEG, and TIFF would be the
scope of image formats for general purpose images;  HDF and a couple
others for scientific images, etc.).  In all cases, reactive content
negotiation on the few URLs that allow variants is far more efficient
than preemtive negotiation on all URLs.

Now, if you do the smart thing and make the negotiation response a
URC format, then you also get location independence for free.

>Let me suggest again "accept-parameter: <parameter><rel><value>"
>where <parameter> is a parameter to a number of media types (e.g.,
>charset), <rel> is a relation operator (e.g., =), and <value> is a
>value specifier consistent with <rel>.
>
>This will apply 'to all accepted media types for which the parameter
>applies', and the q value operates by modifying the q of the original
>media type. (If revisedq = f(mediaq, parameterq), I'm not sure what f
>should be, but I think 'product', e.g., revisedq=mediaq * parameterq.

And let me point out again the two flaws with this proposal.

  1) There are no common media type parameters other than
     charset and boundary (and the latter is not negotiable). 

  2) When media types do use the same name for a parameter, they
     may have entirely different meaning or have incompatible domains.
     One obvious example is the "level" parameter.

Therefore, you cannot negotiate on a parameter other than charset
without first tying it to the media type which defines it.


 ....Roy T. Fielding  Department of ICS, University of California, Irvine USA
                      Visiting Scholar, MIT/LCS + World-Wide Web Consortium
                      (fielding@w3.org)                (fielding@ics.uci.edu)

Received on Wednesday, 13 September 1995 20:39:33 UTC