2013-01-08 65 views
1

我正在調查IE9與SWI-Prolog HTTP服務器交談的奇怪事件序列。在清除瀏覽器緩存並加載/之後,我看到了這種情況。奇怪的序列涉及WSAECONNABORTED

  • IE9:GET/
  • 的Prolog回覆一個重定向到/ home
  • IE9:GET /家
  • Prolog的回答與主網頁(HTML,指的是7張圖片,CSS,JS)
  • IE9打開這些
  • 7個連接似乎的Windows關閉所有這些使用WSAECONNABORTED。 服務器在用於讀取 請求的某些連接上報告此錯誤,並在發送答覆時發送該錯誤。 IE9開發者interfacse說 中止
  • IE9打開4個連接,這工作正常,然後3,這也很好。

有沒有人有一個想法,爲什麼這一切發生,誰是開始中止? (Prolog)服務器本身對連接數量沒有限制(除非 需要顯式更改WinSock的默認值)。

P.s.平臺:Win7,64位。

+0

您可以測試與其他瀏覽器或wget的請求?這可能會告訴你哪一方有問題。 – Bill

+0

感謝您的回答。我只是嘗試了FF18.0。在這裏,我們看到一個/ home的請求,然後是6個併發的css和js文件請求,然後是4個併發圖像請求。所有完成很好。在服務器上打開低級別調試不會出現網絡錯誤。現在的問題是使用6個或7個併發連接是否重要。我會盡力找出答案。 –

回答

0

從歷史上看,HTTP協議對於HTTP/1.0每個客戶端具有四個連接的傳統限制,對於HTTP/1.1(根據RFC2616第8.1節)具有兩個連接的傳統限制。我懷疑你的Prolog服務器正在執行這個限制。或者,它可能是一箇中間防火牆的行爲,它現在做各種事情,所以很難跟蹤。

因爲它看起來像IE正常行爲正在檢測限制和回落到一個下限。

對於這裏的興趣是從IE6天一些文檔:

+0

謝謝。關於我編寫了大部分SWI-Prolog套接字以及HTTP服務器,您可以確定沒有連接數量的限制:-)是的。 IE9正確檢測到它必須降低連接數量。我主要擔心面臨雙重請求的有狀態HTTP服務,因爲有些連接會讀取有效的請求,並在輸出階段中止。沒有防火牆;我們在虛擬機中的vanilla Win7Pro(64)安裝上討論本地主機連接。 –

+0

@JanWielemaker,你使用內核模式的HTTP驅動HTTP.sys來處理傳入的請求嗎?即你使用HttpListener還是simlar。如果是這樣的話,誰在做。 – Ben

+0

或者您正在使用的inetd在http.sys下運行... – Ben