User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729) Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729) If webserver delivers "expires" and "Cache-Control: max-age" http headers which is in the past, then firefox always will take the page from it's internal cache. No roundtrip to the server (even no "if-modified-since") will be performed. Reproducible: Always Steps to Reproduce: 1. add mod_expires on apache 2. configure mod_expires: 'ExpiresDefault "modification plus 5 minutes" 3. create a "index.html" and "test.html" on apache web server v2.2; index.html contains a link to test.html 4. wait >5 minutes 5. in firefox call http://server/index.html then click on "test.html" ==> expires-header will be in he past 6. edit test.html 7. press "back"-button in firefox, click on "test.html" link ==> test.html always will be fetched from cache, changes on test.html will no be shown IE beheves correctly ;-)
Component: General → Networking: HTTP
QA Contact: general → networking.http
Odd. The code that handles this sets the expiration time to "right now" if Expires is in the past. See http://mxr.mozilla.org/mozilla-central/source/netwerk/protocol/http/src/nsHttpResponseHead.cpp#299 Can you point me to a url that shows the problem for you? Are any of your cache preferences set to non-default values?
(In reply to comment #0) > Steps to Reproduce: > 1. add mod_expires on apache > 2. configure mod_expires: 'ExpiresDefault "modification plus 5 minutes" > 3. create a "index.html" and "test.html" on apache web server v2.2; index.html > contains a link to test.html > 4. wait >5 minutes ExpiresDefault can be superceeded by "ExpiresByType text/html ..." etc. > http://httpd.apache.org/docs/2.0/en/mod/mod_expires.html > Apache Module mod_expires john, did you check such settings other than ExpiresDefault? Firefox 3 has capability to see HTTP headers held in cache. 1. about:cache, Disk cache device, List Cache Entries 2. Find entry of next. Key: http://.../test.html 3. Click linkified "http://.../test.html" at the lising. What is set in expires: field? What HTTP heders are displayed in response-head: field? What value is set in next? (about:config, "frequency" in filter filed) > browser.cache.check_doc_frequency Please read next page for the setting. > http://kb.mozillazine.org/Browser.cache.check_doc_frequency
We first used "ExpiresDefault", after we saw the stange behavior of firefox we tried "ExpiresByType" which doesn't change the behavior. We also tried to divide the expires settings: at "hot times" html pages will be refreshed every 5 minutes, so we tried "ExpiresByType" for html pages "modification plus 5 minutes" and all others (css, js, ...) "ExpiresDefault" plus 1 month. I inspected the http headers with "live http headers" addon. All "expires" and "cache" headers are correctly set by apache! As I mentionted above - IE did it correctly! So I suppose that apache is wrong or our settings (in apache) are wrong. in our browsers browser.cache.check_doc_frequency=3 which is the default setting. We also tried with a freshly installed firefox 3.6 (all settings are at default values). Have you tried my "Steps to Reproduce"?
john, I tried your steps to reproduce locally (not using Apache, since I don't have that available right this second but using a different web server), and things seem to work fine. If it's at all possible for you to set up a public test server that shows the problem, that would be great. Otherwise I'll keep looking for a way to reproduce...
Status: UNCONFIRMED → RESOLVED
Last Resolved: 3 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.