- From: Paul Burchard <burchard@cs.princeton.edu>
- Date: Sun, 2 Jun 96 16:28:23 -0400
- To: Koen Holtman <koen@win.tue.nl>
- Cc: masinter@parc.xerox.com, jg@w3.org, http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com, fielding@ics.uci.edu
koen@win.tue.nl (Koen Holtman) writes: > Give me one month, and I can write a nice 10-page section, > which people might might understand, that exactly > defines how `understood variation' works. Yikes...then how can you be so confident that this will be interoperably implemented? In any case, since the current text is wrong, how about if I take one more crack at a conceptually simple description? ------------------------------ 1.3. Terminology required-variation header A request header is a required-variation header if this specification provides any circumstances under which the server MUST vary its response as a function of that header's value. More specific notions of required-variation header can also be defined, by considering only those transactions which have some specified property (such as a given method). argument-entity If a method allows an entity body in the request, the argument-entity of that method is the entity defined by the entity-body together with all entity-headers of the request. method-call on a resource A network data object or service that can be identified by the combination of a URL (section 3.2), a method on the resource corresponding to that URL (section 9), and an optional argument-entity for the method (when applicable). 14.43. Vary The Vary response-header field is used by a server to signal that the response entity was selected from the available representations of the response using server-driven negotiation (section 15). The selected representation is always assumed to vary as a function of: * the method-call on the resource defined by the request; * all required-variation headers for that method-call. The Vary field value indicates either that the given set of header fields (together with the assumed variations listed above) encompasses the dimensions over which the representation might vary, or that the dimensions of variance are unspecified ("*") and thus may vary over any aspect of future requests. [...] A Vary field value consisting of a list of field-names signals that the representation selected for the response is based on a selection algorithm which (aside from the assumed variations listed above) considers ONLY the listed request-header field values in selecting the most appropriate representation. This selection algorithm MAY be assumed to remain unchanged (and thus apply to future requests) for the duration of time in which the response is fresh. ------------------------------ P.S. I don't understand how it can make sense to let the Vary value depend on the (non-5xx) response code. The cache is responsible for matching cached responses with suitable _requests_, whereas the response code is part of what the cache must calculate from the request, with the help of Vary headers. (If I'm missing something, just stick the response code into the list of assumed variations.) -------------------------------------------------------------------- Paul Burchard <burchard@cs.princeton.edu> ``I'm still learning how to count backwards from infinity...'' --------------------------------------------------------------------
Received on Sunday, 2 June 1996 13:31:27 UTC