2009-09-17 24 views
2

幾年來,我一直面臨着HTTP 1.1流水線&問題繼續向服務器發送HTTP標頭:在本機移動應用程序中阻止HTTP 1.1流水線?

Connection: close 

我想重溫這一決定。您的本機移動應用程序是否使用HTTP流水線? 與HTTP管線的一些問題,我面對:

  • 服務器不釋放TCP連接
  • 我的客戶是從一個HTTP連接接收多個回覆

回答

0

一個客戶端/服務器的要求與HTTP/1.1兼容是流水線的支持。所以我不明白如何使用它會是一個問題......我寧願認爲它會受到鼓勵。使用流水線,你減少了創建新的資源,網絡帶寬等

所有現代Web服務器支持流水線和任何合理完整的客戶端庫應該,所以我不知道這個問題可能是什麼......也許如果你詢問我們可以幫助你的具體錯誤。

0

HTTP「流水線」不僅意味着在連續的請求/響應之間保持TCP連接打開。它描述了一個用戶代理的行爲,它發送下一個HTTP請求,即使不等待對最後一個請求的未決響應。

根據我的經驗,幾乎所有的HTTP服務器都支持持久連接。另外使用流水線不太穩定。 Firefox實現了這個功能,但默認情況下會將其禁用。

2

這正是持久連接和流水線的作用:保持TCP連接處於打開狀態,直到超時(或瀏覽器關閉),並向同一管道發送多個請求。

如果您的服務器提供大量的客戶(你可能會用完的工人,RAM,甚至免費的端口,提高響應時間的新要求)

如果你願意,你可能要考慮刪除持久連接進一步閱讀,關於persistent connection behaviour的指針

+0

那麼,返回一個「連接:關閉」一件壞事? – 2009-10-23 06:31:04

+1

它會關閉當前流,釋放資源。如果你知道在接下來的一秒鐘內你不需要它,這實際上是一件非常好的事情;在所有其他情況下,它仍然可能是好的 – ptor 2009-10-23 13:28:23

0

您正在混淆HTTP流水線和HTTP持久連接。

持久連接,你保持TCP連接各地的將來的請求,但仍連續送他們:http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html

流水線是HTTP 1.1的一個很少使用的功能,您剛剛火,而無需等待在同一連接上的多個請求爲答覆。它實際上是HTTP規範所要求的,但很少被客戶端使用(例如,Android的HTTP庫不)。不過,大多數服務器似乎都支持它。它在相同RFC的第8.1.2.2節中描述。