2012-08-02 93 views
2

我對HTTP BOSH和HTTP流水線感到困惑。HTTP BOSH和HTTP流水線

BOSH規格:http://xmpp.org/extensions/xep-0124.html

如果客戶需要一些數據發送給連接管理器然後 它簡單地發送包含數據的第二請求。 不幸的是 大多數受限制的客戶端不支持HTTP管道傳輸(併發的 請求通過單個連接),所以客戶端通常需要通過第二個HTTP連接發送數據 。

而在這個規範是關於HTTP管道很多信息,但是從 http://en.wikipedia.org/wiki/HTTP_pipelining

非冪等方法,如POST不應流水線。

而且在BOSH規格:

的所有信息都是標準的HTTP POST體編碼的請求 和響應。每個HTTP正文包含一個封裝器,封裝正在傳輸的XML元素(請參閱封裝器 元素)。

那麼如何才能使用HTTP流水線與HTTP BOSH?

回答

6

HTTP RFC

客戶不應使用非冪等方法或方法非冪等序列(參見9.1.2節)管道請求。

「不應該」在這方面的含義由RFC 2119,即給定的,

這句話,還是那句話「不推薦」意味着有可能存在在特定情況下有效的原因時,特定的行爲是可以接受的,甚至是有用的,但全部含義應理解和實施的情況下用這個標記描述的任何行爲

這意思是說,在一般情況下,它是不能重新之前仔細權衡推薦使用HTTP流水線和POST請求(這與RFC 2616's的概念POST一致);但是,HTTP協議實際上並不禁止它。如果它實際上禁止這種行爲,則RFC 2616將使用「MUST NOT」語言。 BOSH規範的作者作出了判斷,在BOSH的情況下,對流水線POST請求沒有不利影響。