Joshua Slive wrote:
> I'm no protcol expert, but that doesn't make sense to me. mod_negotiation
> should be adding "Accept-Language" to the Vary: header (yep, it's doing
> that), but it shouldn't be setting Expires, should it? Proxies should be
> free to cache the page, conditional on the Accept-Language.
Here's the chunk of code from mod_negotiation:
if ((!do_cache_negotiated_docs(r->server)
&& (r->proto_num < HTTP_VERSION(1,1)))
&& neg->count_multiviews_variants != 1) {
r->no_cache = 1;
}
and yes, HTTP version does make a difference:
[gregames@gandalf gregames]$ runsocks nc httpd.apache.org 80
HEAD /docs/mod/core.html HTTP/1.1
host: httpd.apache.org
HTTP/1.1 200 OK
Date: Tue, 22 Jan 2002 19:46:47 GMT
Server: Apache/2.0.29 (Unix)
Content-Location: core.html.en
Vary: negotiate,accept-language
TCN: choice
Accept-Ranges: bytes
Content-Type: text/html
Content-Language: en
for comparison purposes:
[gregames@gandalf gregames]$ runsocks nc httpd.apache.org 80
HEAD /docs/mod/core.html HTTP/1.0
host: httpd.apache.org
HTTP/1.1 200 OK
Date: Tue, 22 Jan 2002 19:49:07 GMT
Server: Apache/2.0.29 (Unix)
Content-Location: core.html.en
Vary: negotiate,accept-language
TCN: choice
Accept-Ranges: bytes
Connection: close
Content-Type: text/html
Content-Language: en
Expires: Tue, 22 Jan 2002 19:49:07 GMT
...so Andrzej's squid must be using HTTP/1.0
Greg