convoy should assist in getting decent caching to the browser

Bug #966253 reported by Richard Harding on 2012-03-27
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Convoy
Low
Unassigned

Bug Description

In testing out convoy behind an nginx server, I had a hard time getting the browser to cache it. It shows up as a dynamic page and doesn't hit your normal static routes. Setting the cache expires headers eventually took, but nginx can't get tell if the response has changed because convoy isn't setting a last-modified header.

Convoy should set a last-modified header that the web server could then use to help in caching at it's level and to the browser.

Related branches

Richard Harding (rharding) wrote :

In MP https://code.launchpad.net/~rharding/convoy/add_listmod_header/+merge/94437 it was brought up that due to issues syncing various front ends, it's actually preferable to provide etag headers that are the hash of the content. This might be another way to go, but it would require changing convoy from being a streaming response to holding the contents in memory in order to calculate the hash of the content.

To further aid with caching over and above faciliating conditional GETs it would be useful for combined assets to be optionally served with a far futures expires header directly. Cache busting would be the responsibility of the implementation.

Also it might be worth considering providing a way to provide a non-query string based url as some proxies won't cache urls containing "?" by default [1][2]

[1] http://code.google.com/speed/page-speed/docs/caching.html#LeverageProxyCaching
[2] http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/

Deryck Hodge (deryck) wrote :

I think we're all pretty well agreed this is a nice-to-have, low issue. I welcome correction and re-triage if others disagree.

Changed in convoy:
status: New → Triaged
importance: Undecided → Low

Squid, since 2.7 defaults to caching ? just fine, it always cached it
if was configured to do so.

As far as priority goes, if convoy can serve a million requests a day
as-is we probably don't need caching for LP (because we use SSL the
only caching we'd get is in-DC anyway).

-Rob

Robert Collins (lifeless) wrote :

Oh, but let me add to that that we -must- test that browsers
navigating multiple pages don't re-request the same thing with the
current headers, if they do, then we're going to have terrible front
end performance.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers