Index: C:/var/biz/d/drupal_civic_4_6/includes/bootstrap.inc =================================================================== --- C:/var/biz/d/drupal_civic_4_6/includes/bootstrap.inc (revision 69) +++ C:/var/biz/d/drupal_civic_4_6/includes/bootstrap.inc (working copy) @@ -437,7 +437,41 @@ $modified_since = NULL; } $none_match = !empty($_SERVER['HTTP_IF_NONE_MATCH']) ? $_SERVER['HTTP_IF_NONE_MATCH'] == $etag : NULL; - + + + /** + * THIS "FIX for http://drupal.org/project/comments/add/70521 ... CA bug 1664" + * seems to prevent the browser from locally caching the data + * + * my guess is that it prevents all proxy and browser caching but uses the drupal cache. + * This would have the effect of our servers not slowing, but browsing being slower. + * + * But, if this area does allow caching by proxies, and these added headers prevent it, then it will + * also be a hit on the servers. + * + * Other tangents: + * + * There may be a way for headers to notify the browser to check for partial updates, + * preserving caches of images and css. + * + * I am also suspicious of the ETag header, because we fear what we don't understand. + * The ETag header creates it's date from a date in the cache. + * + * + * */ + //BEGIN fix + session_cache_limiter("must-revalidate"); + header("Expires: 0"); + //header("Expires: Sun, 19 Nov 1978 05:00:00 GMT"); + header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); + //added + header("Cache-Control: no-cache, no-store, must-revalidate, max-age=0"); + header("Cache-Control: post-check=0, pre-check=0", false); + header("Pragma: no-cache"); + header("Cache-Control: private",false); + + //END fix + // The type checking here is very important, be careful when changing entries. if (($modified_since !== NULL || $none_match !== NULL) && $modified_since !== false && $none_match !== false) { header('HTTP/1.0 304 Not Modified'); @@ -445,8 +479,8 @@ } // Send appropriate response: - header("Last-Modified: $date"); - header("ETag: $etag"); + //header("Last-Modified: $date"); + //header("ETag: $etag"); // Determine if the browser accepts gzipped data. if (@strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') === false && function_exists('gzencode')) { @@ -472,7 +506,7 @@ else { header("Expires: Sun, 19 Nov 1978 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); - header("Cache-Control: no-store, no-cache, must-revalidate"); + header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); }