Support for If-None-Match header.

Reza Naghibi reza at varnish-software.com
Mon Jan 23 18:28:36 CET 2017


You could vary on the Etag which will keep multiple Etag versions in cache
while allowing for 304 responses on each one:

---

vcl 4.0;

backend default
{
  .host = "127.0.0.1";
  .port = "80";
}

sub vcl_recv
{
  if (req.http.If-None-Match) {
    set req.http.ETag = req.http.If-None-Match;
  }
}

sub vcl_backend_response
{
  set beresp.http.Vary = "ETag";
}

---

I may have misunderstood the question, but your backend would have to
return the correct response matching upto the Etag.

--
Reza Naghibi
Varnish Software

On Mon, Jan 23, 2017 at 10:02 AM, Craig Servin <
cservin-varnish at cromagnon.com> wrote:

> Hi Jan,
>
> You might want to consider using the libvmod-xkey and then having backend
> changes just tell varnish to invalidate based on that secondary key.
>
> Cheers,
>
> Craig
>
>
>
> On 2017-01-23 06:56, Jan Hugo Prins | BetterBe wrote:
>
>> Hello,
>>
>> We are currently investigating the use of Varnish for our
>> infrastructure. In the software we build, we depend on the
>> If-None-Match header and the use of ETAG's.
>> The API we have created creates mainly JSON objects, and they differ
>> in size from a few hundreds of bytes to several megabytes. A lot of
>> these JSON objects are perfectly suited for caching, until someone
>> changes a parameter and this can happen at any moment. That is also
>> why we keep a record of all ETAG's and we invalidate them when needed.
>>
>>
>> What we would like to do is cache created JSON object in front of our
>> production environment and when someone requests the same calculation
>> that someone else has requested before and the ETAG is still valid,
>> send out the cached object. But this basicly implies the following
>> workflow:
>>
>
>
> _______________________________________________
> varnish-misc mailing list
> varnish-misc at varnish-cache.org
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20170123/e8053c2d/attachment.html>


More information about the varnish-misc mailing list