尝试在IE9中调试网站。我通过Python运行它。
在chrome,safari,firefox和opera中,网站立即加载,但在IE9中它似乎挂起并且从未实际加载。
这可能是http流水线操作的问题吗?或者是其他东西?我怎么能解决这个问题?
答案 0 :(得分:1)
你需要指定你正在使用的Python“Web服务器”(例如瓶子?也许是Tornado?CherryPy?),但更重要的是,当IE9是IE9时,你需要提供哪些请求标头和HTTP响应进出参与。
您可以使用例如电线将它们从电线上取下ngrep,或者我认为你可以在IE9中使用Developers Tools(F12键)。
IE9最常见的怪癖通常不会打扰Web浏览器的内容长度不匹配(好吧,这个DID在我上次看起来很麻烦),可能是Content-Type(这反过来 - IE9有时会正确收集HTML) mimetype,即使Content-Type错误),Connection:Close。
所以是的,这可能是HTTP流水线操作的一个问题:特别是如果您使用无效的Content-Length管道化请求甚至没有chunked-transfer-encoding,IE可能会等待请求“完成”。这也会发生在Web浏览器中;但是,在IE中,这种行为可能会覆盖正在刷新和关闭的连接,而在Web浏览器中则不会。这两个假设可能与您观察到的症状相符。
要解决这个问题,您可以切换到chunked transfer encoding,它会以某种方式替换Content-Length,或者正确计算其值。如何做到这一点取决于服务器。
要快速验证,您可以发出内容长度肯定太短(例如100个字节?),看看是否会导致IE取消挂起并显示部分网页。
答案 1 :(得分:0)
使用packet sniffer拦截并记录服务器和IE之间以及服务器和其他浏览器之间的数据包。检查它们并比较它们以查看会发生什么。