XMLHttpRequest: Double TCP SYN in milliseconds in Internet Explorer 9

the XMLHttpRequest object calls two TCP SYN packets when trying to send some POST data. This happens in less than a millisecond. I cannot reproduce this behavior in any other browser (tested with the latest Firefox and Google Chrome browser).

Even the β€œasynchronous” flag or timeout parameter does not seem to change the situation.

The problem is that when IE9 sends two SYNs, they will be automatically allocated by the TCP / IP server stack. But unfortunately, IE9 then sends the Post data in the second stream, which means that the web server is already waiting for bytes in the first socket (it causes a timeout). This is because we are talking about one threaded web server that can process one socket at a time.

Any suggestions or ideas?

I would like IE9 not to install two sockets at once.

This happens regardless of whether I use the jjery ajax function or implement it myself in a java script.

Regards

Matthias

+3
source share
2 answers

Just try adding a header Connection: closein all server responses to make sure the browser starts a new tcp connection for each request.

+1
source

We notice the same thing with wirehark, IE9's own F12 debugger shows one POST, but packets coming out of the IE9 client machine show two POSTS ... and the server also receives 2, which causes inconsistent problems for our server-side application.

9.0.8112.16421, 9.0.3 (KB 2586448)

IE8,

<meta http-equiv="X-UA-Compatible" content="IE=8" / >

... , , JS , .

... ... , IE9

+1

All Articles