Here's what I found:
- Apparently a recent MS update had reset my caching preferences to allow IE
to decide whent to check for modified pages "automatically", (the meaning of
which is described here: http://support.microsoft.com/?kbid=263070). In
the cases I diagnosed, the browser was indeed, as Allen thought, not even
sending a request.
- If I change IE's cache control policy to check on "Every visit to the
page", I see requests from IE carrying If-Modified-Since headers and what
looks like correct cache behavior stepping through PageServlet.
- It appears that "Automatically" is the default setting that IE ships with.
- If we don't send "Last-Modified" headers and I keep the defaul
"Automatically" setting, IE appears to send requests every time, but with
no If-Modified-Since header at all.
- It appears that in trunk and 2.3 we were not sending the "Last-Modified"
header. That code is commented out, without an explanation. (Anyone recall
why? Did it have anything to do with IE?) I think this might explain the
difference in behavior I'm seeing with 2.3.
I think we might want to add a configuration parameter to control whether or
not to send the Last-Modified header, or spend more time figuring out a way
to work properly with IE's default setting.
--a.
----- Original Message -----
From: "Allen Gilliland" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Saturday, September 02, 2006 11:07 PM
Subject: Re: problems with 3.0 on IE
Anil Gangolli wrote:
----- Original Message ----- From: "Allen Gilliland"
<[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Friday, September 01, 2006 9:18 AM
Subject: Re: problems with 3.0 on IE
Anil Gangolli wrote:
I'm seeing several odd problems with 3.0 on IE 6 on my local build. I
seem to be getting stale versions of pages unless I load bypassing the
cache.
I don't see how the caching could be having a different affect from one
browser to the next. What do you mean "bypassing the cache"?
I mean forced reload which tells the browser to (a) ignore its local
cache (b) don't send an If-Modified-Since header.
gotcha.
It's possible it's just bad browser caching. I know that firefox can be
really tricky with browser caching if you aren't careful, especially
with feeds. I know for a fact that there are times in firefox when it
won't even sent a request for a page to check 304, it will just
automatically use the browser cache, although i haven't figured out the
exact conditions for that yet.
I haven't diagnosed it yet, but I suspect it is that we are not
responding properly to some IfModified-qualified requests.
That's possible, I never use IE so I can't say that everything is tested
as well in IE. I know that one thing that can cause problems with
if-modified headers is date conversions, if for some reason IE is doing
something even just a few milliseconds different from the application that
can cause the 304 checking to be wrong.
-- Allen
Note: There are no proxies or intermediate servers between the browser
and my dev Tomcat running on the same host.
Has anyone else seen this with IE on current 3.0 builds? I don't want to
hold anything up if it is a personal setup issue.
-- Allen
Is anyone else testing with IE?
I don't see the same problem with Firefox.
This is specific to 3.0. I'm not seeing this on 2.3.
I've just started looking into it, but hesitant to call this a release
candidate without it.
--a.