I was recently pointed to an article on an obscure IE bug that occurs if you name a textarea “tags”. This reminded me of an IE bug that plagued us for months. We solved it when we find a Microsoft Knowledge base article acknowledging that Internet Explorer does not fully support HTTP. Yes, that’s right. Microsoft still does not support the core protocol of the web.
Here is the scenario:
Some Internet Explorer users were encountering problems downloading files from links sent via email. Clicking on the link from the email would not work; however, visiting a web page that linked to the same location and then downloading the file worked.
When we replicated this problem, we could see the file delivered from our servers correctly and a temporary file put in Internet Explorer’s cache for the download. Internet Explorer then starts another application like Acrobat Reader to open the file. Internet Explorer then deletes the temporary file from the cache before the third party application can open the file. Because the file no longer exists, Internet Explorer displays an error message that says:
“Internet Explorer cannot download from the Internet site [filename] from [site].”
In the specific case of downloading files via links sent in email, we believe we have identified the underlying problem. Under some circumstances, Internet Explorer is unable to handle proper usage of an HTTP Header called Vary. An exhaustive examination of the problem can be found here:
This is a bug in that only occurs in Internet Explorer. All other browsers handle the HTTP specification correctly. Microsoft has been aware of the problem since 1999, and instead of fixing it to support the full HTTP specification, Microsoft implemented a hack that works most of the time, but fails in certain circumstances. In fact, Microsoft’s own knowledge base acknowledges that Internet Explorer is at fault when it comes to this issue. The knowledge base states that Internet Explorer does not support the HTTP specification fully:
My hope is that by documenting our findings will help someone else from needlessly trying to troubleshoot the same issue.