Trying to debug a website in IE9. I am running it via Python.
In chrome, safari, firefox, and opera, the site loads immediately, but in IE9 it seems to hang and never actually loads.
Could this possibly be an issue with http pipelining? Or something else? And how might I fix this?
You need to specify what Python "Web server" you're using (e.g. bottle? Maybe Tornado? CherryPy?), but more important, you need to supply what request headers and what HTTP response go in and out when IE9 is involved.
You may lift them off the wire using e.g. ngrep, or I think you can use Developers Tools in IE9 (F12 key).
The most common quirks with IE9 that often do not bother Web browsers are mismatches in Content-Length (well, this DID bother Safari last time I looked), possibly Content-Type (this acts in reverse - IE9 sometimes correctly gleans HTML mimetype even if the Content-Type is wrong), Connection: Close.
So yes, it could be a problem with HTTP pipelining: specifically if you pipeline a request with invalid Content-Length and not even chunked-transfer-encoding, IE might wait for the request to "finish". This would happen in Web browsers too; but it could then be that this behavior, in IE, overrides the connection being flushed and closed, while in Web browsers it does not. These two hypotheses might match your observed symptoms.
To fix that, you either switch to chunked transfer encoding, which replaces Content-Length in a way, or correctly compute its value. How to do this depends on the server.
To verify quickly, you could issue a Content-Length surely too short (e.g. 100 bytes?) to see whether this results in IE un-hanging and displaying a partial web page.
IE9 and Python issues?