[Zope-dev] Cache-bug in handling of files

Brian Lloyd Brian@digicool.com
Fri, 11 Aug 2000 11:44:55 -0400


> I am using IE 5 (5.00.2919.6307), cache settings set to:
> "Check for newer versions of stored pages: 
> Automatically
> 
> Those settings should get the new file if it has changed. 
> 
> I am accessing the server through a proxy.. could that be a problem? I
> think it would be strange if everyone accessing the website I am
> building can see the new files..
> 
> What do you think?
> 
> Peter

Peter - I have done some testing here and I can demonstrate
that this is an IE issue.

I set my cache to "Automatically" like yours and restarted 
it. I then opened a Netscape and created a new file object. 
I instrumented the code in the 'index_html' method of File 
objects so that I could tell _for sure_ whether things were 
actually being called at the server or not. Here's what I 
did:

  - create a file 'myfile.txt', uploading a contents of 
    text1.txt into it. 

  - visit the view tab with IE. The server 
    confirms that the index_html was called, and the whole 
    content was sent, not a 304.

  - now (using netscape again) upload the contents of 
    text2.txt into the file object. The mgmt screen 
    correctly shows the updated byte length, etc.

  - click the 'view' tab again on IE. My instrumenting 
    confirms that IE is not contacting the server *at all* 
    no matter how many times I click the 'view' tab, and I 
    keep seeing the old content. A look at the headers 
    produced by this shows nothing that tells IE it should 
    be doing that:

HTTP/1.1 200 OK
Server: Zope/(unreleased version) ZServer/1.1b1
Date: Fri, 11 Aug 2000 15:18:50 GMT
Connection: close
Content-Type: text/plain
Content-Length: 944
Last-Modified: Fri, 11 Aug 2000 15:16:06 GMT

    Interestingly, if you open the "view" tab in a new window,
    you'll see the updated content. Now, using that same new 
    window, set your cursor at the end of the url string in the 
    url bar and hit return. IE seems to reload the page, but it 
    is not actually even contacting the server. Stranger yet, if 
    you click the "refresh" button it *will* contact the server 
    (and it passes an If-Modified-Since header, and correctly 
    gets a 304 Not Modified). 

    Now, use netscape to change the content again. The whole thing 
    starts over. Clicking the 'view' link on the page or pressing 
    return in the URL bar will not even contact the server and 
    the only way to get the updated content is to explicitly press
    "refresh" or open a new window, even though the resource 
    returned no caching information one way or the other.

I'm going to close that bug report and include this report 
for those who may find it useful in the future.

Brian Lloyd        brian@digicool.com
Software Engineer  540.371.6909              
Digital Creations  http://www.digicool.com