Re: Rethinking content negotiation (Was: rethinking caching)

Daniel DuBois:
>
>I've always been very hesitant about the server's content variant-picking
>algorithm being part of the protocol, because I saw that as a server-side
>implementation issue, but as time goes on, I become more and more convinced
>of the weight of this issue and its impact on the scalabilty of the web.

I still am very hesitant about moving variant-picking algorithms into
proxies: if it is done in the wrong way, it will have a negative
impact on the extensibility of the protocol.

It is desirable however to put a sub-algorithm that often occurs in
server variant-picking algorithms in the protocol.  The sub-algorithm
in question is the algorithm that can match MIME type, language, and
content coding.

>The new URI header solves this caching problem perfectly, and
>single-handedly convinces me of the concept of opening the algorithm to the
>protocol.

I agree with your assessment of the old `vary' method not being a good
solution, but I disagree with you that the new URI header `solves the
caching problem perfectly'.

The URI header in draft-ietf-http-v11-spec-00 is a step in the right
direction, but it does not offer a perfect solution by itself, we need
some additional mechanisms currently under discussion. (One example of
such a mechanism is the request header I called `Send-no-body-for' in
my notes on content negotiation (see
http://www.ics.uci.edu/pub/ietf/http/hypermail/1995q4/0347.html ).

We need something like `Send-no-body-for' because variant-picking
algorithms can never be moved completely into proxies.  (User-agent
based negotiation is the most obvious reason why this cannot be done.)

I expect to be working on these issues inside the content negotiation
subgroup.

By the way, I disagree with Larry Masinter on where to draw the line
between content negotiation and caching. My assignment of header
responsibility is:

Content negotiation subgroup:
 Accept-*, URI, Location

Caching subgroup:
 Expires, Cache-control, If-Modified-Since, ....

URI and Location are both used by all types of clients, not just
proxies, in reactive negotiation.  This makes them primarily the
responsibility of the negotiation subgroup.

>Dan DuBois, Software Animal             http://www.spyglass.com/~ddubois/

Koen.

Received on Saturday, 23 December 1995 06:19:27 UTC