IE9和Python问题?

时间:2012-08-23 19:30:21

标签: python windows debugging internet-explorer-9 pipeline

尝试在IE9中调试网站。我通过Python运行它。

在chrome,safari,firefox和opera中,网站立即加载,但在IE9中它似乎挂起并且从未实际加载。

这可能是http流水线操作的问题吗?或者是其他东西?我怎么能解决这个问题?

2 个答案:

答案 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之间以及服务器和其他浏览器之间的数据包。检查它们并比较它们以查看会发生什么。