Re: Vary and Accept-Language

    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