[richfaces-issues] [JBoss JIRA] (RF-13294) Broken caching of static resources in IE

Nicholas Oxhøj (JIRA) jira-events at lists.jboss.org
Tue Oct 29 09:12:02 EDT 2013


     [ https://issues.jboss.org/browse/RF-13294?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nicholas Oxhøj updated RF-13294:
--------------------------------

    Description: 
There seems to be a problem with the caching headers sent by RichFaces in relation to IE (IE8 at least which is the one I have tested).

The default for RichFaces, is to tell the browser to cache static resources for 24 hours:

{code}
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Cache-control: max-age=86400
Last-Modified: Tue, 29 Oct 2013 13:01:56 GMT
Expires: Wed, 30 Oct 2013 13:02:39 GMT
Content-Type: text/javascript
Content-Length: 117992
Date: Tue, 29 Oct 2013 13:02:39 GMT
{code}

But it seems that when IE, after 24 hours, validates the file with a "If-Modified-Since" and receives a "304 Not Modified" response

{code}
HTTP/1.1 304 Not Modified
Server: Apache-Coyote/1.1
Date: Tue, 29 Oct 2013 13:07:56 GMT
{code}

it will *keep* re-validating the file on all subsequent pages/uses, whereas e.g. FireFox _seems_ to reapply the "max-age" of 24 hours, that it was told on the initial GET of the file.

I haven't been able to find any specifications, blog posts or anything else related to how the browser should react _after_ having received a "304 Not Modified" response.

But it seems that if you add a "Cache-control: max-age=..." header to the "304 Not Modified" response in InternetResourceService#serviceResource(), IE will not re-validate the file until that max-age has expired.

{code}
HTTP/1.1 304 Not Modified
Server: Apache-Coyote/1.1
Cache-control: max-age=86400
Date: Tue, 29 Oct 2013 13:07:56 GMT
{code}

  was:
There seems to be a problem with the caching headers sent by RichFaces in relation to IE (IE8 at least which is the one I have tested).

The default for RichFaces, is to tell the browser to cache static resources for 24 hours. But it seems that when IE, after 24 hours, validates the file with a "If-Modified-Since" and receives a "304 Not Modified" response, it will KEEP re-validating the file on all subsequent pages/uses, whereas e.g. FireFox _seems_ to reapply the "max-age" of 24 hours, that it was told on the initial GET of the file.

I haven't been able to find any specifications, blog posts or anything else related to how the browser should react _after_ having received a "304 Not Modified" response.

But it seems that if you add a "Cache-control: max-age=..." header to the "304 Not Modified" response in InternetResourceService#serviceResource(), IE will not re-validate the file until that max-age has expired.


    
> Broken caching of static resources in IE
> ----------------------------------------
>
>                 Key: RF-13294
>                 URL: https://issues.jboss.org/browse/RF-13294
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 3.3.3.Final
>            Reporter: Nicholas Oxhøj
>
> There seems to be a problem with the caching headers sent by RichFaces in relation to IE (IE8 at least which is the one I have tested).
> The default for RichFaces, is to tell the browser to cache static resources for 24 hours:
> {code}
> HTTP/1.1 200 OK
> Server: Apache-Coyote/1.1
> Cache-control: max-age=86400
> Last-Modified: Tue, 29 Oct 2013 13:01:56 GMT
> Expires: Wed, 30 Oct 2013 13:02:39 GMT
> Content-Type: text/javascript
> Content-Length: 117992
> Date: Tue, 29 Oct 2013 13:02:39 GMT
> {code}
> But it seems that when IE, after 24 hours, validates the file with a "If-Modified-Since" and receives a "304 Not Modified" response
> {code}
> HTTP/1.1 304 Not Modified
> Server: Apache-Coyote/1.1
> Date: Tue, 29 Oct 2013 13:07:56 GMT
> {code}
> it will *keep* re-validating the file on all subsequent pages/uses, whereas e.g. FireFox _seems_ to reapply the "max-age" of 24 hours, that it was told on the initial GET of the file.
> I haven't been able to find any specifications, blog posts or anything else related to how the browser should react _after_ having received a "304 Not Modified" response.
> But it seems that if you add a "Cache-control: max-age=..." header to the "304 Not Modified" response in InternetResourceService#serviceResource(), IE will not re-validate the file until that max-age has expired.
> {code}
> HTTP/1.1 304 Not Modified
> Server: Apache-Coyote/1.1
> Cache-control: max-age=86400
> Date: Tue, 29 Oct 2013 13:07:56 GMT
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the richfaces-issues mailing list