Closed Bug 315905 Opened 19 years ago Closed 8 years ago

Firefox is placing the Expires: header into the Modified: slot in page info

Categories

(Core :: Networking: Cache, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: weage98, Unassigned)

Details

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7

The page is returning the following http headers, as obtained using wget:

HTTP/1.1 200 OK
Date: Thu, 10 Nov 2005 18:56:00 GMT
Server: Apache/2.0.51 (Unix) mod_perl/1.99_16 Perl/v5.8.5
Expires: Thu, 10 Nov 2005 18:56:00 GMT
Connection: close
Content-Type: text/html; charset=ISO-8859-1

In page info, Firefox says "(no expiration set)" in Expires: and has the above expires date in Modified:.

This occurs with 1.0.7 on Windows XP and 1.0.3 on Linux.  I haven't tested any other versions.

I discovered this after having problems with an internal database driven site that is being cached by Firefox, even when the expiration time is set to the page load time.  When I click on reload, the Modified: time is updated but the page contents are still loaded out of the disk cache.  To get the new page data, I must force a reload of the page by using shift-reload.



Reproducible: Always



Expected Results:  
Firefox should get the expires and modified data correct.
Can you use "about:cache" (type it into the location field) to verify what info/headers are being stored in the cache?

The Modified date in Page Info appears to be the server date, not the Expires date.  See bug 265167 for more discussion on what's happening (it's a bug against the Mozilla Suite, but the behavior is the same).

The other half of your report is that the cache is storing the contents past the expiration date.  Let's see what the cache records say and go from there.
Component: General → Page Info
QA Contact: general → page.info
Info from the disk cache:

      Key: http://10.149.25.37/cgi-bin/dt.cgi?what=editcase&id=7659
     Data size: 5664 bytes
   Fetch count: 1
 Last modified: 11/11/05 07:36:09
       Expires: 12/31/69 19:00:00

When I click reload the disk cache then says:

           Key: http://10.149.25.37/cgi-bin/dt.cgi?what=editcase&id=7659
     Data size: 5666 bytes
   Fetch count: 2
 Last modified: 11/11/05 07:37:23
       Expires: 12/31/69 19:00:00

With a shift-reload the fetch count goes back to 1.

The page does not appear in the memory cache.
->Networking:Cache

From the cache info you gave, it appears Firefox is properly marking the entry as expired.  It should be communicating with the server to check if the item has been modified (that is, it is allowed to use the cached contents based on the server response).  Since it's a private server, can you check on what's happening?  See http://www.mozilla.org/projects/netlib/http/http-debugging.html for debugging instructions (see the Other Options section in particular, using livehttpheaders may be enough rather than creating a NSPR log).

To disallow caching (which may be what you really want) you can add an appropriate Cache-Control header to the server response.
Assignee: nobody → darin
Component: Page Info → Networking: Cache
Product: Firefox → Core
QA Contact: page.info → networking.cache
Version: unspecified → 1.7 Branch
Here are the headers.

Initial page load:
http://10.149.25.37/cgi-bin/dt.cgi?what=editcase&id=7722

GET /cgi-bin/dt.cgi?what=editcase&id=7722 HTTP/1.1
Host: 10.149.25.37
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://10.149.25.37/cgi-bin/dt.cgi?what=viewcase

HTTP/1.1 200 OK
Date: Tue, 22 Nov 2005 17:07:56 GMT
Server: Apache/2.0.51 (Unix) mod_perl/1.99_16 Perl/v5.8.5
Expires: Tue, 22 Nov 2005 17:07:56 GMT
Keep-Alive: timeout=15, max=94
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1

After clicking reload:
http://10.149.25.37/cgi-bin/dt.cgi?what=editcase&id=7722

GET /cgi-bin/dt.cgi?what=editcase&id=7722 HTTP/1.1
Host: 10.149.25.37
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://10.149.25.37/cgi-bin/dt.cgi?what=viewcase
Cache-Control: max-age=0

HTTP/1.1 200 OK
Date: Tue, 22 Nov 2005 17:08:13 GMT
Server: Apache/2.0.51 (Unix) mod_perl/1.99_16 Perl/v5.8.5
Expires: Tue, 22 Nov 2005 17:08:14 GMT
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1

Shift-reload:
http://10.149.25.37/cgi-bin/dt.cgi?what=editcase&id=7722

GET /cgi-bin/dt.cgi?what=editcase&id=7722 HTTP/1.1
Host: 10.149.25.37
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://10.149.25.37/cgi-bin/dt.cgi?what=viewcase
Pragma: no-cache
Cache-Control: no-cache

HTTP/1.1 200 OK
Date: Tue, 22 Nov 2005 17:08:26 GMT
Server: Apache/2.0.51 (Unix) mod_perl/1.99_16 Perl/v5.8.5
Expires: Tue, 22 Nov 2005 17:08:26 GMT
Keep-Alive: timeout=15, max=97
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1
-> default owner
Assignee: darin → nobody
Version: 1.7 Branch → Trunk
Status: UNCONFIRMED → RESOLVED
Closed: 8 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.