Not to mention btw, that a lot of proxy servers strip out e-tags (for
instance in squid e-tag support is still 'experimental') .. it's
really probably best to support both where we can, and try to catch
all the border cases where we can too, to get optimal browser caching
behavior
On Jul 2, 2008, at 7:41 PM, Chris Chabot wrote:
Thats not the only thing though .. there's also the case that the
remote server didn't set a Last-Modified header, so the check for
ifModified and ifNoneMatch still fails, since there's no last-
modified to check against.
Maybe that's ok .. but i'm trying to find out if we can't handle
that better our selves, would be a shame to loose being able to
cache efficiently because someone didn't configure their server
correctly
-- Chris
On Jul 2, 2008, at 7:22 PM, Emilio Daniel González wrote:
jaja! sorry, i forgot modify the function in the last code from svn.
Can you fix that?, here you got the "real" function:
private function setCachingHeaders($etag = null)
{
// TODO: Re-implement caching behavior if appropriate.
header("Cache-Control: private; max-age=0", true);
header("Expires: " . gmdate("D, d M Y H:i:s", time() - 3000) . "
GMT", true);
if ($etag !== null)
header("ETag: $etag", true);
}
cheers!
On Wed, Jul 2, 2008 at 2:15 PM, Chris Chabot (JIRA)
<[EMAIL PROTECTED]> wrote:
[ https://issues.apache.org/jira/browse/SHINDIG-374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12609978
#action_12609978 ]
Chris Chabot commented on SHINDIG-374:
--------------------------------------
Hi Emilio,
I noticed something funny about this patch:
$this->setCachingHeaders($etag);
..
private function setCachingHeaders()
{
// TODO: Re-implement caching behavior if appropriate.
header("Cache-Control: private; max-age=0", true);
header("Expires: " . gmdate("D, d M Y H:i:s", time() - 3000) . "
GMT", true);
}
In other words the e-tag is never set, so the code never could
have been tested .... And really i much prefer to see patches that
you at least tried out in a few different browsers, and actually
ran your self :)
I'm taking a look at the code now but it seems i'll have to modify
it a good bit to cover all the border cases.
Proxy ignores e-tags / if-modified-since
----------------------------------------
Key: SHINDIG-374
URL: https://issues.apache.org/jira/browse/
SHINDIG-374
Project: Shindig
Issue Type: Bug
Components: Gadget Rendering Server (PHP)
Reporter: Chris Chabot
Attachments: shindig-http-304-support.patch
The ProxyHandler class does it's own header control instead of
using the generic Servlet one because it requires full control
over what headers are send.
However this currently means it doesn't honor if-modified-since
and e-tag headers, which causes the proxied files to always be re-
downloaded by the web browser.
On straight get's it should really:
- If if-modified-since is set, and the cached file time is within
the refreshInterval params value, return not-modified
- Create it's own e-tag's (md5(responseBody)), and if the e-tag's
match return a not-modified
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.