304 Last Modified responses should include an Expires header
------------------------------------------------------------
Key: WICKET-1748
URL: https://issues.apache.org/jira/browse/WICKET-1748
Project: Wicket
Issue Type: Improvement
Components: wicket
Affects Versions: 1.3.4
Reporter: Nathan Hamblen
I've been experimenting with Wicket and Apache's mod_cache to speed up resource
serving performance and I've come across a communications problem between the
two. When mod_cache is required to verify the status of a cached resource by a
client that unconditionally GETs with a max-age of 0, mod_cache conditionally
requests the resource from Wicket with an If-Modified-Since header. Assuming
the resource has not been modified, WicketFilter responds as it always does
with a 304 Not Modified and nothing else. mod_cache doesn't process the request
and just forwards it on to the unprepared client, because mod_cache is
following RFC 2616/13.9 that says not to handle query string URL responses
unless they have an Expires header. This is the bug:
https://issues.apache.org/bugzilla/show_bug.cgi?id=45341
I suspect the behavior exhibited by mod_cache in this scenario is unintended,
but the Apache guy is saying that a 304 response must contain all headers
relevant for caching. Whether or not that is required by the standard, it is
certainly better that the 304 response contain a new Expires header. Consider:
a resource in a cache (let's say the browser cache) has passed its expiration
date. The browser, then, posts an If-Modified-Since and Wicket responds,
simply, "no". This does not update the expiration date for the client, and
never will. This resource will always be "expired" and need to be revalidated
with every request, instead of having the default shelf-life of 1-hour. Wicket
should ideally be resetting the expiration date by setting an Expires header
with a 304 the same as it does a 200. This would avoid the mod_cache
bug/feature, and improve caching precision generally.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.