Article ID: 293792 - View products that this article applies to.
This article was previously published under Q293792
When a server returns a document that is handled by a plug-in (such as an Adobe Acrobat PDF file), three requests are made for the document in Internet Explorer versions 4.x and 5, and two requests are made in Internet Explorer version 5.5.
Occasionally, Internet Explorer determines the plug-in type; however, Internet Explorer still displays the broken plug-in icon instead of the document.
The first behavior is by design. When an initial request is sent for the server file, this returns a data stream with a content-type that is handled by a plug-in (not an ActiveX control), and Internet Explorer closes the initial port and sends a new request with userAgent = contype.
The only information that is needed in return from the contype request is the content-type. However, because most developers are unaware of this request style, they treat each GET the same and return the entire document. This is where the second problem can manifest itself. Internet Explorer is hard coded to time out in only 10 seconds if the contype request is not answered. If you are reading large files from disk or opening a database to retrieve the file, you can easily exceed the 10 second time-out limit.
In Internet Explorer 4.x and 5, the browser first generates a GET request to the server. The server responds with the content-type, and the browser looks at the registry to check which application it will invoke. Then the browser generates a second GET request, and, after the server responds with the same content-type, the browser invokes the targeted application inside the browser window. Lastly, the browser sends a third GET request, and this time the browser renders the content of the server file inside the browser and completes the process.
Internet Explorer 5.5 uses the same method but sends two GET requests instead of three.
To work around this limitation and to considerably improve the performance of your application, watch for the "contype" userAgent request and only return the content-type.
If possible, configure the plug-in to operate as a helper application instead. Some plug-ins may not work in this mode, but it is a confirmed solution for PDF files and the Adobe Acrobat Reader.
Sample Solution for a PDF FileAccess the PDF file through an HTML page that uses the <OBJECT> tag to specify the ActiveX control version of the PDF viewer as follows:
NOTE: This only works if there is a file to specify for the src parameter and does not resolve the problem if the PDF file is sent as a binary stream.
Steps to Reproduce Behavior
For more information, see the following Microsoft Web sites:
Appendix A: MIME Type Detection in Internet ExplorerFor additional information, click the article number below to view the article in the Microsoft Knowledge Base:
Support WebCast: MIME Type Handling in Microsoft Internet Explorer
148942For more information about developing Web-based solutions for Microsoft Internet Explorer, visit the following Microsoft Web sites:
(http://support.microsoft.com/kb/148942/EN-US/ )How to Capture Network Traffic with Network Monitor
Article ID: 293792 - Last Review: May 23, 2007 - Revision: 3.1