OK. I confirmed that Roller 2.3 does not send Last-Modified headers for certain (possibly all) struts actions, particularly main.do which serves the front page in 2.3, but it does send the Last-Modified header for blog pages.

Wherever Roller 2.3 does send the header, I see exactly the same issue with IE set to the "Automatic" setting, so the issue is not a new 3.0-specific one as I had first thought.

What *is* new and initially caught my attention is that in Roller 3.0 we now see this staleness behavior in IE on the front page, because the front page is actually associated to a blog page, and gets the Last-Modified header.

Upshot: I think we should continue the current 3.0 behavior, but I won't be surprised if we later get requests to make it configurable, at least for the front page to avoid the issue with default IE settings. We should wait for that though.


--a.




----- Original Message ----- From: "Anil Gangolli" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Sunday, September 03, 2006 11:28 PM
Subject: Re: problems with 3.0 on IE



Yep. I agree. I'm not sure if there is anything to do here. I'll be trying to understand this further; I'll try to compare what's happening with 2.3 and 3.0 more carefully before making a recommendation.


--a.


----- Original Message ----- From: "Allen Gilliland" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Sunday, September 03, 2006 10:47 PM
Subject: Re: problems with 3.0 on IE


eeks. I don't think changing our app to not send Last-Modified headers is the right approach. The Last-Modified header is an http standard and if IE is doing something wrong with it then that's their fault, not ours.

I think that everything that you listed in your bullets below is correct behavior for the cache control. A browser can only send an If-Modified-Since header if it has gotten a Last-Modified header, and it sounds like when the headers are present (like in firefox) then everything works properly.

It's not really our fault if IE is being overly aggressive about its caching.

-- Allen


Anil Gangolli wrote:
Scratch the fourth bullet. We are sending a Last-Modified header in 2.3, so I still don't know what's different between 3.0 and 2.3

----- Original Message ----- From: "Anil Gangolli" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Sunday, September 03, 2006 7:37 PM
Subject: Re: problems with 3.0 on IE




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.









Reply via email to