Here's a followup to:
>Subject: DefaultServlet throws a LOT of broken pipe exceptions on mp3s.

-------
I found the cause of my java.io.IOException "Broken pipe" errors.

IE 6 is sending two GET requests for each .mp3 file. I haven't tested the
behavior on IE 5.x or other plugin-handled mime types.

The first GET sets the request header:

user-agent = contype

and is a Microsoft (ie, non-standard) attempt at data-sniffing intended to
get just the header information. Tomcat 4.x starts sending the content data,
but IE resets/drops the connection after 30-50k (100-500 ms), generating a
"Broken pipe" exception.

IE then sends a second request for the content using:

user-agent=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

which completes.

[see Microsoft Knowledge Base Articles: KB 293792, KB 254337, KB 310388.
Note: KB 310388 describes a fix for multiple posts in IE 6 SP1 (service pack
1). Tests from an IE 6 SP1 client however still demonstrate the multiple
GETs.  

I'm still trying to determine if the broken pipe GET is the cause of the
unreliable caching behaving I'm seeing in IE 6 (symptom: IE 6 clients are
downloading about 10x vs. Netscape/Safari clients; few if any 304
responses). 

-------

So, two questions for the karmically kind:

1) Any bright ideas on a workaround for the user-agent: contype GET? At
present it's double-banging my server for 100-200k files. Is there a context
level mechanism for filtering, ie, blocking, requests based on headers?

2) Is this more properly a development issue? I see workarounds in the
4.1.27 and 5.x source to ignore "Broken pipe" exceptions and the multiple
GET is apparently  rooted in kludges from browser 4.x days -- but I got no
hits for "user-agent contype" in a google of the tomcat archives.

Cheers,
Chris


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to