- From: Jeffrey Mogul <mogul@pa.dec.com>
- Date: Mon, 22 Jul 96 15:27:19 MDT
- To: Andrew Daviel <andrew@vancouver-webpages.com>
- Cc: HTTP Working Group <http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com>
In HTTP 1.1: If the server sends Vary: Content-Language must it also send a Content-Language header ? (I would think so) This question reflects a subtle misunderstanding of the Vary mechanism, although you are certainly not the first person to have made this mistake. "Vary: Content-Language" makes little sense, because (1) Fields named by "Vary" are expected to be *request* headers, not response headers. The description of "Vary" was rewritten several times during the last few weeks of the drafting process, and it looks like we neglected to stress this point emphatically enough. (2) Content-Language is normally a *response* header, at least for the GET method. So the question makes very little sense, since the premise is wrong: servers would not normally send "Vary: Content-Language". If the server has more than one language available, but the user agent does not send Accept-Language, need the server send Vary: Content-Language at all? In this case, the server would *still* send "Vary: Accept-language", since any cache involved might receive future requests from other clients that do send Accept-Language. If it does, what is the action of a proxy server on getting a request for that URL without an Accept-Language header? If the cache sees "Vary: Accept-language" in a response and then a subsequent request for the same resource without an Accept-Language header, it must forward the request (perhaps as a conditional GET). Section 14.43 says this quite explicitly: the cache MUST NOT use such a cache entry to construct a response to the new request unless all of the headers named in the cached Vary header are present in the new request Note the word "all" in that phrase. -Jeff
Received on Monday, 22 July 1996 15:41:49 UTC