Re: [squid-users] Caching dynamic content, trading between HTTP versions

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Tue, 30 Apr 2013 22:21:53 +1200

On 30/04/2013 9:14 p.m., Andrea Aime wrote:
> Hi,
> I'm trying to stand up a multi-level cache of dynamically generated content and
> having some design issues with inconsistent version of HTTP protocol used
> before and after the cache.
>
> Basically, I have a webapp that generates dynamic content for which
> it's possible
> to create an ETag, and handle appropriately the If-None-Modified
> validation requests,
> but where we don't have enough information to handle a If-Modified-Since request
> instead.
> So basically, we need the cache to talk HTTP 1.1 with the webapp.

Both If-Modified-Since and If-None-Modified are optional features. There
is no requirement in HTTP for any of the client, gateway or server to
use either of them.

> So far so good. Now enter a second level of caching, a CDN made with cloudfront,
> and here is the gotcha: cloudfront only supports HTTP 1.0 requests towards the
> origin, which in this case would be Squid.

That is unfortunate. A missing feature in CloudFront. Even more
unfortunately it coincides with Squid missing the same feature ...

> So I'm wondering, is Squid able to trade between the two worlds, basically
> have it so that cloudfront makes a if-modified-since validation request, and
> Squid somehow turns into into a if-none-modified towards the dynamic webapp?
> Pretty new to caches, so no idea if the thing is feasible at all.
>
> Any other suggestion about how this could be handled?

Adding the If-None-Modified feature to either CloudFront or Squid is
probably a good solution. I believe measurement-factory.com have a
project underway to add it to Squid. You may want to contact Alex there
about getting access or sponsoring further progress.

Amos
Received on Tue Apr 30 2013 - 10:22:10 MDT

This archive was generated by hypermail 2.2.0 : Tue Apr 30 2013 - 12:00:07 MDT