Comment 0 for bug 92492

Revision history for this message
James Henstridge (jamesh) wrote : Resources should probably be served with no last-modified date and a content based etag

Currently requests to Launchpad are handled by two app servers running from different Launchpad trees.

Resources such as images, CSS and Javascript get served off the file system with a Last-Modified header. Since this header comes from the filesystem, the two app servers will provide slightly different results.

When the user's browser tries to revalidate one of these resources, it sends an If-Not-Modified header with that modification date. If the user has been bounced from one app server to the other in the right direction, the server will think that they have an out of date copy of the file and send it again.

Two ways to fix this include:
 * rather than pick last modified dates from the file system, pick them from Bazaar inventory, which will be the same for both app servers
 * send ETag that is dependent on the content instead. The head revision ID is one possibility here, but it changes more often than the files.