A few users see a blank page

Dag-Erling Smørgrav des at linpro.no
Thu Feb 14 14:38:49 CET 2008

"Marco Molinari" <marco.molinari at gmail.com> writes:
> Dag-Erling Smørgrav <des at linpro.no> writes:
> > If the point of this is to allow the client to Shift-Reload, you
> > should purge the URL to force a reload from the backend, instead of
> > piping the request.
> That's the point, I just needed a quick way to purge an URL.

This won't do what you want; the client that used Pragma: no-cache
will see a new version, but other clients won't.

Additionally, I would recommend that you use an ACL to restrict
purging to specific clients.

> Thanks for your reply, I'm still learning a lot about Varnish,
> especially the difference between pass and pipe. Actually the "pipe"
> for POST and req.http.Expect were taken from the default vcl.

The *old* default VCL :) I haven't had time to update the

> If I understand correctly "pipe" means that further data between
> client and server is passed until the connection is closed, while
> "pass" means that the current request will be passed, but further
> requests in the same connection will be normally processed by the vcl
> file (and could be looked-up, for example).

Absolutely correct.

> Is this correct? Would you please make some examples where "pass" and
> "pipe" are preferred?

"pass" is preferred whenever possible; "pipe" should only be used for
requests that Varnish can't handle at all because they don't follow
the ususal HTTP structure (CONNECT is the only example I can think of
at the moment)

In the past, pass could not handle POST requests at all; later, it
could handle them but poorly (insufficient error recovery).  The
current code in trunk handles POST requests correctly in pass mode.

Dag-Erling Smørgrav
Senior Software Developer
Linpro AS - www.linpro.no

More information about the varnish-misc mailing list