[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