[微程式-技術研討會] 8月研討會 - Bidirectional-streams Over Synchronous HTTP (BOSH) - 主講人:znul
Bidirectional-streams Over Synchronous HTTP (BOSH)
網址: http://www.xmpp.org/extensions/xep-0124.html
一何謂bosh?
雙向性的Http串流,利用http protocol post transport xmpp stream
二why http protocol?
一般防火牆都會允許tcp 80 prot 的對外窗口,某些少數的防火牆甚至允許任何的通訊協定通過這個port,
但是更多的proxy,filter 會確認通過的串流是否為http
三技術名詞
1pull: client use http request from server,是一種以網路為基礎的溝通方法
2 push: server response data to client,是一種以網路為基礎的溝通方法,server主動將資料傳給client
四compare other bidirectional http-base transport protocol
1http polling :週期性的詢問server是否有資料
2 ajax(Asynchronous JavaScript and XML)
3 comet :是長時間連線要求的web 應用的模式,server在有資料要傳送時透過此連線push資料至用戶端.
利用ajax with long polling or iframe or htmlfile activex 的技術去探測server是否有新的訊息
4bosh:採用多個http request / response 對,非polling,自稱可高效率低延遲的傳輸訊息及節省網路頻寬
五要求
1相容於受約束的執行環境(如行動電話或流覽器的用戶端)**.
2可以讓流覽器的用戶端建立跨網域的連接*
3相容部份緩衝的http代理回應*
4有效率的通過http回應時間限制的代理*
5完全相容http 1.0*
6相容受限的網路連線(如防火牆.代理.閘道)
7容錯性
8擴展性
9使用的頻寬遠低於輪詢機制的protocols
10回應的時間遠低於輪詢機制的protocols
11支援輪詢
12按順序傳送資料
13防止未經許可的使用者插入http request
14防止拒絕服務攻擊15多工的資料串流
*為comet無法做到的
六架構 Server [unwrapped data streams] Connection Manager (specialized HTTP server) BOSH [HTTP +