Welcome to MobyThreads.com!
FAQFAQ      ProfileProfile    Private MessagesPrivate Messages   Log inLog in
All support for the MobyThreads Threaded phpBB MOD can now be found on welsolutions at this forum

IIS6, ETag, IE6 caching and serious perfomance headache

 
   Web Hosting and Web Master Forums (Home) -> IIS RSS
Next:  IIS mod_rewrite  
Author Message
Anthony Jones

External


Since: Jan 28, 2006
Posts: 113



(Msg. 1) Posted: Fri Sep 01, 2006 12:41 pm
Post subject: IIS6, ETag, IE6 caching and serious perfomance headache
Archived from groups: microsoft>public>inetserver>iis (more info?)

People,

Does anyone understand the constitution of the ETag generated by IIS when it
sends static content.

I've been observing a problem which I think is a bug in IE (or more
accurately Wininet) which occurs when the ETag of a resource is different
but it's Last-Modified date isn't.

Using fiddler I see a request to a server for a resource which carries
headers such as these:-

GET /aFolder/a.js HTTP/1.1
Accept: */*
Accept-Language: en-gb
Accept-Encoding: gzip, deflate
If-Modified-Since: Thu, 06 Jul 2006 12:42:16 GMT
If-None-Match: "084869cf9a0c61:71e"
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR
1.0.3705; .NET CLR 1.1.4322)
Host: myhost.com
Proxy-Connection: Keep-Alive

The server responds with these headers and then the resource content:-

HTTP/1.1 200 OK
Content-Length: 18477
Content-Type: application/octet-stream
Last-Modified: Thu, 06 Jul 2006 12:42:16 GMT
Accept-Ranges: bytes
ETag: "084869cf9a0c61:729"
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Fri, 01 Sep 2006 10:40:51 GMT

Note that the If-Modified-Since in the request and the Last-Modified in the
response are identical. However the ETag in the request If-None-Match
header doesn't match the responses ETag. So the servers response is correct
in this case.

Note also the first part of the ETags do match (I'm guessing that this is
some kind of hash of the content body). It is just the final part after the
colon which is different 71e is sent but the response is 729. Now I'm
guessing this has something to do with the web site sending the response
since this part of the Etag is common to all requests to the site.

Now annoyingly when another request is made for the same resource the 71e
ETag is still sent in the request dispite having just seen a response that
used a different ETag. So again the response is 200 with the new ETag which
seems to be ignored. Hence all subsequent requests for this resource that
should at least result in 304 (or shouldn't even require a trip to the
server at all) are fullfiled with 200 with the full content in the body.

Ok so that's an IE issue I know but note that this second part of the ETag
is common accross all requests to the site. Now I've had an issue with a
couple of customer sites where for some reason this final part of the ETag
has changed. This means that practically all requests for static content is
now being responded to with status 200 instead of 304 and is therefore a
major performance headache.

The current solution is to inform all users to delete temporary internet
files.

Can any one tell me what might cause a web site to start using a different
value at the end of the ETag?

I also have one or two customers wanting to use load balancing. For this
not be a problem all servers would need to send the same ETag for the
identical static content they have, how is this acheived?

TIA,

Anthony.

 >> Stay informed about: IIS6, ETag, IE6 caching and serious perfomance headache 
Back to top
Login to vote
Anthony Jones

External


Since: Jan 28, 2006
Posts: 113



(Msg. 2) Posted: Fri Oct 06, 2006 3:03 pm
Post subject: Re: IIS6, ETag, IE6 caching and serious perfomance headache [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

"Anthony Jones" <Ant RemoveThis @yadayadayada.com> wrote in message
news:euLOdubzGHA.4816@TK2MSFTNGP06.phx.gbl...
> People,
>
> Does anyone understand the constitution of the ETag generated by IIS when
it
> sends static content.
>
> I've been observing a problem which I think is a bug in IE (or more
> accurately Wininet) which occurs when the ETag of a resource is different
> but it's Last-Modified date isn't.
>
> Using fiddler I see a request to a server for a resource which carries
> headers such as these:-
>
> GET /aFolder/a.js HTTP/1.1
> Accept: */*
> Accept-Language: en-gb
> Accept-Encoding: gzip, deflate
> If-Modified-Since: Thu, 06 Jul 2006 12:42:16 GMT
> If-None-Match: "084869cf9a0c61:71e"
> User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR
> 1.0.3705; .NET CLR 1.1.4322)
> Host: myhost.com
> Proxy-Connection: Keep-Alive
>
> The server responds with these headers and then the resource content:-
>
> HTTP/1.1 200 OK
> Content-Length: 18477
> Content-Type: application/octet-stream
> Last-Modified: Thu, 06 Jul 2006 12:42:16 GMT
> Accept-Ranges: bytes
> ETag: "084869cf9a0c61:729"
> Server: Microsoft-IIS/6.0
> X-Powered-By: ASP.NET
> Date: Fri, 01 Sep 2006 10:40:51 GMT
>
> Note that the If-Modified-Since in the request and the Last-Modified in
the
> response are identical. However the ETag in the request If-None-Match
> header doesn't match the responses ETag. So the servers response is
correct
> in this case.
>
> Note also the first part of the ETags do match (I'm guessing that this is
> some kind of hash of the content body). It is just the final part after
the
> colon which is different 71e is sent but the response is 729. Now I'm
> guessing this has something to do with the web site sending the response
> since this part of the Etag is common to all requests to the site.
>
> Now annoyingly when another request is made for the same resource the 71e
> ETag is still sent in the request dispite having just seen a response that
> used a different ETag. So again the response is 200 with the new ETag
which
> seems to be ignored. Hence all subsequent requests for this resource that
> should at least result in 304 (or shouldn't even require a trip to the
> server at all) are fullfiled with 200 with the full content in the body.
>
> Ok so that's an IE issue I know but note that this second part of the ETag
> is common accross all requests to the site. Now I've had an issue with a
> couple of customer sites where for some reason this final part of the ETag
> has changed. This means that practically all requests for static content
is
> now being responded to with status 200 instead of 304 and is therefore a
> major performance headache.
>
> The current solution is to inform all users to delete temporary internet
> files.
>
> Can any one tell me what might cause a web site to start using a different
> value at the end of the ETag?
>
> I also have one or two customers wanting to use load balancing. For this
> not be a problem all servers would need to send the same ETag for the
> identical static content they have, how is this acheived?
>
> TIA,
>
> Anthony.
>

Oh well I guess it is a bit of a tough one. My thanks to anyone who at
least waded through that lot and gave it some thought. Wink

Anthony.

 >> Stay informed about: IIS6, ETag, IE6 caching and serious perfomance headache 
Back to top
Login to vote
Ben_

External


Since: Nov 17, 2006
Posts: 2



(Msg. 3) Posted: Fri Nov 17, 2006 5:46 pm
Post subject: Re: IIS6, ETag, IE6 caching and serious perfomance headache [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Back to top
Login to vote
David Wang

External


Since: Dec 22, 2006
Posts: 560



(Msg. 4) Posted: Sat Nov 18, 2006 2:06 am
Post subject: Re: IIS6, ETag, IE6 caching and serious perfomance headache [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

There was an ETag bug in IIS6 of WS03RTM which affects IIS6 in a
load-balancing web-farm configuration, where multiple IIS6 servers
serving the SAME content would return DIFFERENT ETag. This is bad in a
load-balancing scenario because customers can get load balanced between
different IIS6 servers, and repeatedly retrieving the same content from
the different IIS6 servers would result in different ETag and hence
wrecks havoc on client-side cache.

I think a hotfix was made for it, but not certain of the KB#. But I do
know that the fix is in WS03SP1. You basically want to fix the ETag
Change Number to be the same value across all machines in the Web Farm
that is load balanced.


//David
http://w3-4u.blogspot.com
http://blogs.msdn.com/David.Wang
//




Anthony Jones wrote:
> "Anthony Jones" <Ant.DeleteThis@yadayadayada.com> wrote in message
> news:euLOdubzGHA.4816@TK2MSFTNGP06.phx.gbl...
> > People,
> >
> > Does anyone understand the constitution of the ETag generated by IIS when
> it
> > sends static content.
> >
> > I've been observing a problem which I think is a bug in IE (or more
> > accurately Wininet) which occurs when the ETag of a resource is different
> > but it's Last-Modified date isn't.
> >
> > Using fiddler I see a request to a server for a resource which carries
> > headers such as these:-
> >
> > GET /aFolder/a.js HTTP/1.1
> > Accept: */*
> > Accept-Language: en-gb
> > Accept-Encoding: gzip, deflate
> > If-Modified-Since: Thu, 06 Jul 2006 12:42:16 GMT
> > If-None-Match: "084869cf9a0c61:71e"
> > User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR
> > 1.0.3705; .NET CLR 1.1.4322)
> > Host: myhost.com
> > Proxy-Connection: Keep-Alive
> >
> > The server responds with these headers and then the resource content:-
> >
> > HTTP/1.1 200 OK
> > Content-Length: 18477
> > Content-Type: application/octet-stream
> > Last-Modified: Thu, 06 Jul 2006 12:42:16 GMT
> > Accept-Ranges: bytes
> > ETag: "084869cf9a0c61:729"
> > Server: Microsoft-IIS/6.0
> > X-Powered-By: ASP.NET
> > Date: Fri, 01 Sep 2006 10:40:51 GMT
> >
> > Note that the If-Modified-Since in the request and the Last-Modified in
> the
> > response are identical. However the ETag in the request If-None-Match
> > header doesn't match the responses ETag. So the servers response is
> correct
> > in this case.
> >
> > Note also the first part of the ETags do match (I'm guessing that this is
> > some kind of hash of the content body). It is just the final part after
> the
> > colon which is different 71e is sent but the response is 729. Now I'm
> > guessing this has something to do with the web site sending the response
> > since this part of the Etag is common to all requests to the site.
> >
> > Now annoyingly when another request is made for the same resource the 71e
> > ETag is still sent in the request dispite having just seen a response that
> > used a different ETag. So again the response is 200 with the new ETag
> which
> > seems to be ignored. Hence all subsequent requests for this resource that
> > should at least result in 304 (or shouldn't even require a trip to the
> > server at all) are fullfiled with 200 with the full content in the body.
> >
> > Ok so that's an IE issue I know but note that this second part of the ETag
> > is common accross all requests to the site. Now I've had an issue with a
> > couple of customer sites where for some reason this final part of the ETag
> > has changed. This means that practically all requests for static content
> is
> > now being responded to with status 200 instead of 304 and is therefore a
> > major performance headache.
> >
> > The current solution is to inform all users to delete temporary internet
> > files.
> >
> > Can any one tell me what might cause a web site to start using a different
> > value at the end of the ETag?
> >
> > I also have one or two customers wanting to use load balancing. For this
> > not be a problem all servers would need to send the same ETag for the
> > identical static content they have, how is this acheived?
> >
> > TIA,
> >
> > Anthony.
> >
>
> Oh well I guess it is a bit of a tough one. My thanks to anyone who at
> least waded through that lot and gave it some thought. Wink
>
> Anthony.
 >> Stay informed about: IIS6, ETag, IE6 caching and serious perfomance headache 
Back to top
Login to vote
Ben_

External


Since: Nov 17, 2006
Posts: 2



(Msg. 5) Posted: Sun Nov 19, 2006 12:18 pm
Post subject: Re: IIS6, ETag, IE6 caching and serious perfomance headache [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

You may find this blog entry useful:
http://dotnetjunkies.com/WebLog/leon/archive/2005/02/16/54630.aspx.

The blogger confirms your observation ("IE will not update file ETag value
in cache if file is unchanged.") and I observed it myself recently.

I couldn't find a KB article confirming this behavior however.

Does anyone know of KB article confirming it ?

Thx.
 >> Stay informed about: IIS6, ETag, IE6 caching and serious perfomance headache 
Back to top
Login to vote
Bernard Cheah [MVP]

External


Since: May 31, 2005
Posts: 321



(Msg. 6) Posted: Sun Nov 19, 2006 1:14 pm
Post subject: Re: IIS6, ETag, IE6 caching and serious perfomance headache [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Was it this one ?
FIX: The value in the ETAG field is updated when you modify a metabase
property in IIS 6.0
http://support.microsoft.com/?id=900245

or
MD_ETAG_CHANGENUMBER metabase property is not honored in Internet
Information Services version 6.0
http://support.microsoft.com/?id=823544


The later is included in sp1, but the 900245 is not.

--
Regards,
Bernard Cheah
http://www.iis.net/
http://www.iis-resources.com/
http://msmvps.com/blogs/bernard/


"David Wang" <w3.4you RemoveThis @gmail.com> wrote in message
news:1163844411.340532.184510@b28g2000cwb.googlegroups.com...
> There was an ETag bug in IIS6 of WS03RTM which affects IIS6 in a
> load-balancing web-farm configuration, where multiple IIS6 servers
> serving the SAME content would return DIFFERENT ETag. This is bad in a
> load-balancing scenario because customers can get load balanced between
> different IIS6 servers, and repeatedly retrieving the same content from
> the different IIS6 servers would result in different ETag and hence
> wrecks havoc on client-side cache.
>
> I think a hotfix was made for it, but not certain of the KB#. But I do
> know that the fix is in WS03SP1. You basically want to fix the ETag
> Change Number to be the same value across all machines in the Web Farm
> that is load balanced.
>
>
> //David
> http://w3-4u.blogspot.com
> http://blogs.msdn.com/David.Wang
> //
>
>
>
>
> Anthony Jones wrote:
>> "Anthony Jones" <Ant RemoveThis @yadayadayada.com> wrote in message
>> news:euLOdubzGHA.4816@TK2MSFTNGP06.phx.gbl...
>> > People,
>> >
>> > Does anyone understand the constitution of the ETag generated by IIS
>> > when
>> it
>> > sends static content.
>> >
>> > I've been observing a problem which I think is a bug in IE (or more
>> > accurately Wininet) which occurs when the ETag of a resource is
>> > different
>> > but it's Last-Modified date isn't.
>> >
>> > Using fiddler I see a request to a server for a resource which carries
>> > headers such as these:-
>> >
>> > GET /aFolder/a.js HTTP/1.1
>> > Accept: */*
>> > Accept-Language: en-gb
>> > Accept-Encoding: gzip, deflate
>> > If-Modified-Since: Thu, 06 Jul 2006 12:42:16 GMT
>> > If-None-Match: "084869cf9a0c61:71e"
>> > User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR
>> > 1.0.3705; .NET CLR 1.1.4322)
>> > Host: myhost.com
>> > Proxy-Connection: Keep-Alive
>> >
>> > The server responds with these headers and then the resource content:-
>> >
>> > HTTP/1.1 200 OK
>> > Content-Length: 18477
>> > Content-Type: application/octet-stream
>> > Last-Modified: Thu, 06 Jul 2006 12:42:16 GMT
>> > Accept-Ranges: bytes
>> > ETag: "084869cf9a0c61:729"
>> > Server: Microsoft-IIS/6.0
>> > X-Powered-By: ASP.NET
>> > Date: Fri, 01 Sep 2006 10:40:51 GMT
>> >
>> > Note that the If-Modified-Since in the request and the Last-Modified in
>> the
>> > response are identical. However the ETag in the request If-None-Match
>> > header doesn't match the responses ETag. So the servers response is
>> correct
>> > in this case.
>> >
>> > Note also the first part of the ETags do match (I'm guessing that this
>> > is
>> > some kind of hash of the content body). It is just the final part
>> > after
>> the
>> > colon which is different 71e is sent but the response is 729. Now I'm
>> > guessing this has something to do with the web site sending the
>> > response
>> > since this part of the Etag is common to all requests to the site.
>> >
>> > Now annoyingly when another request is made for the same resource the
>> > 71e
>> > ETag is still sent in the request dispite having just seen a response
>> > that
>> > used a different ETag. So again the response is 200 with the new ETag
>> which
>> > seems to be ignored. Hence all subsequent requests for this resource
>> > that
>> > should at least result in 304 (or shouldn't even require a trip to the
>> > server at all) are fullfiled with 200 with the full content in the
>> > body.
>> >
>> > Ok so that's an IE issue I know but note that this second part of the
>> > ETag
>> > is common accross all requests to the site. Now I've had an issue with
>> > a
>> > couple of customer sites where for some reason this final part of the
>> > ETag
>> > has changed. This means that practically all requests for static
>> > content
>> is
>> > now being responded to with status 200 instead of 304 and is therefore
>> > a
>> > major performance headache.
>> >
>> > The current solution is to inform all users to delete temporary
>> > internet
>> > files.
>> >
>> > Can any one tell me what might cause a web site to start using a
>> > different
>> > value at the end of the ETag?
>> >
>> > I also have one or two customers wanting to use load balancing. For
>> > this
>> > not be a problem all servers would need to send the same ETag for the
>> > identical static content they have, how is this acheived?
>> >
>> > TIA,
>> >
>> > Anthony.
>> >
>>
>> Oh well I guess it is a bit of a tough one. My thanks to anyone who at
>> least waded through that lot and gave it some thought. Wink
>>
>> Anthony.
>
 >> Stay informed about: IIS6, ETag, IE6 caching and serious perfomance headache 
Back to top
Login to vote
Display posts from previous:   
Related Topics:
IIS perfomance problem - Hi, everyone! I have a perfomance problem with IIS 5.0 and win2000 server. I use the PerfMon to record ASP:Total Queue Length and found it will rise about five or ten more nearly ten minutes until it will become very high. I have set the..

ETag: - Hi everyone, Is there a way to supress the "ETag:" herver header in IIS 5.0? Thanks, rusga

IIS6 caching - We've run into a situation with Windows 2003 Web server edition where IIS 6 caching and continuing to server old content after the source files has been edited. Initially the hosting client contacted us and it appeared to be a caching issue on there end...

IIS6 and XSL caching - So I have XSL files on my W2k3 server which are accesible through IIS6. Developers make a lot of frequent changes in these files. And I have a problem, IIS caches these XSL files for sime time. Lets say I copied some new files into this server. I opened....

iis6 / asp / caching - Hi I'm using IIS 6 that uses a shared drive as source. It serves all files etc without any problems. But when I modify an .asp or html page and i reload it, I still get the old page. Then I have to reload 2-3 more times and I get the new version. I have...
   Web Hosting and Web Master Forums (Home) -> IIS All times are: Pacific Time (US & Canada) (change)
Page 1 of 1

 
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum



[ Contact us | Terms of Service/Privacy Policy ]