obj.cacheable vs expires headers?

Luc Stroobant lstroobant at gmail.com
Mon Feb 8 21:24:52 CET 2010


Hello,

Antoni Villalonga wrote:

> It's seems to be correct. Be careful with cacheable and ttl=0 answers.
> 
> Some simple debuging:
> sub vcl_fetch {
> 	# Varnish determined the object was not cacheable
> 	if (!obj.cacheable) {
> 		set obj.http.X-Cacheable = "No";
> 	} elsif (obj.ttl > 0s) {
> 		set obj.http.X-Cacheable = "Yes";
> 	} else {
> 		set obj.http.X-Cacheable = "Yes: ttl=0";
> 	}
> 	[...]
> }

Thanks for your reply. I enabled the extra debugging on a test-instance, 
like you proposed.
obj.ttl seems to be zero indeed, but I still don't get how his would 
make the request cacheable. At least it's not the behaviour one would 
expect?
Secondly: I also thought that Varnish never caches requests with a 
Set-cookie header?
Or is it just the header that causes problems with intermediate proxies 
between our server and the users (and/or browser cache of the clients)?

Request sent through Varnish:
HTTP/1.1 200 OK
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.2.12
Set-Cookie: SESSbc5f9ce1c97eee1824d1ab670ce3057b14; expires=Wed, 03-Mar-
2010 23:24:42 GMT; path=/; domain=removed
Last-Modified: Mon, 08 Feb 2010 19:49:49 GMT
ETag: "8060981009417cf0496649018d6535fa"
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Content-Length: 12955
X-Cacheable: Yes: ttl=0
cache-control: max-age = 900
Date: Mon, 08 Feb 2010 19:51:22 GMT
X-Varnish: 1349734797
Via: 1.1 varnish
Connection: close
age: 0


Direct request:
HTTP/1.1 200 OK
Date: Mon, 08 Feb 2010 19:53:56 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.2.12
Set-Cookie: SESSbc5f9ce1c97eee1824d1ab670ebj735pffubr1e86; expires=Wed, 
03-Mar-2010 23:27:16 GMT; path=/; domain=removed
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Mon, 08 Feb 2010 19:53:56 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Connection: close
Content-Type: text/html; charset=utf-8

If this is wanted behaviour, I would propose to add a warning on 
http://varnish-cache.org/wiki/VCLExampleLongerCaching
The config can cause serious privacy problems and other weird things on 
sites with logged in users.

Luc


More information about the varnish-misc mailing list