[PATCH] stale-while-revalidate updated

Poul-Henning Kamp phk at phk.freebsd.dk
Thu Aug 28 08:49:25 CEST 2014

In message <53FE4EE5.7050507 at uplex.de>, Geoff Simmons writes:

>I think I'm unsure about what we're striving for in Varnish 4 --
>wasn't the goal to move as much caching policy as possible out to VCL,
>with good defaults in builtin.vcl?

Something like that.

It's a bit more complicated though.

The first design rule is to not make "the pascal mistake", by which
I mean that the writer of the VCL can _always_ do what he wants to do.

That means that as a general rule we cannot call VCL and then munge
headers afterwards in C-code, we should always do that before VCL
or as a result of things done in VCL.

That is not _always_ possible and certainly not always desirable.

For instance, we don't want to send 'T-E: Chunked' unless we are
actually going to deliver the object using our chunked code-path,
no matter what the VCL writer might think.

The trick here is to try to put a dividing line between stuff which
is protocol (T-E: Chunked, Content-Length etc.) and things which are
policy (Vary, A-E, etc.)

Given how utterly messed up the HTTP "standard" is, that is not
anywhere as easy as it should be.

Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.

More information about the varnish-dev mailing list