我想用服務器數據更新客戶端數據,反之亦然。目前我使用的BasicHttpBinding比wsHttpBinding快。 我requirnment是才達到:BasichttpBinding vs WCF的WSHttpBinding
- 快速的數據通信
- 安全通信
兩個結合是適合在這種情況下basicHttpBinding的和的wsHttpBinding。 那麼我應該使用哪種綁定?和BasicHttp和wsHttp綁定有什麼區別?
我想用服務器數據更新客戶端數據,反之亦然。目前我使用的BasicHttpBinding比wsHttpBinding快。 我requirnment是才達到:BasichttpBinding vs WCF的WSHttpBinding
兩個結合是適合在這種情況下basicHttpBinding的和的wsHttpBinding。 那麼我應該使用哪種綁定?和BasicHttp和wsHttp綁定有什麼區別?
如果您需要安全,請使用wsHttpBinding
。它實現了所有各種安全功能,如消息或傳輸安全性,作爲Windows憑據提供的客戶端憑證,用戶名/密碼或證書。它支持可靠的消息傳遞以及更多 - 完整的WS *標準。
BasicHttpBinding
就是這樣 - 非常非常基本。它或多或少是ASMX網絡服務 - 幾乎沒有設置,沒有安全性(除了通過HTTPS路由)。
如果您需要快速,請使用netTcpBinding
- 但這不適用於互聯網連接。如果這不起作用,請使用basicHttpBinding
- 它比wsHttpBinding
更快,更精簡,開銷更少。
所以你回到了經典的權衡:你可以有快速或安全 - 選擇一個。沒有什麼「魔法」的方式同時存在 - 安全性會增加開銷並因此減慢速度。什麼對你更重要:安全通信或快速通信?
wsHTttpBinding實現了Web服務通信的WS-Security標準,但是,如果您使用basicHttpBinding,我相信HTTPS將爲您提供足夠的安全性。
您還應該記住wsHttpBinding會限制您的互操作性,因爲wsHttpBinding只與支持WS- *(SOAP 1.2)的客戶端兼容。
在我看來,我會堅持basicHttpBinding,除非有特定的WS- *標準功能,你需要。在WS-Security方面,它帶來的功能就是消息級加密(HTTPS提供的傳輸級加密之外)。對我來說,傳輸加密可以確保您的消息在通過有線傳輸時被加密,但消息級別加密的唯一好處是不需要使用傳輸級別安全性的開銷,而只是希望在消息的特定區域實現輕量級加密。
這裏的WS規範列表從維基百科爲您的信息:
http://en.wikipedia.org/wiki/List_of_Web_service_specifications
當通信不知道通過點對點的安全通道時,傳輸安全性可能是有益的。當客戶端向服務發送消息並且消息通過中介路由時,傳輸安全並不總能得到保證,並且消息級安全性成爲有用的選擇。 – BitMask777 2011-07-26 18:56:15
通常我們推薦一種快速安全的傳輸(如SSL)安全。這是因爲任何類型的消息級別的安全性在加密/簽名中都是CPU密集型的。
所以,你可以使用基本的http綁定和傳輸安全性在大多數情況下沒有太多的折衷perf。
如果你沒有使用任何更豐富的WS *協議或會話等,那麼你可以堅持基本的http綁定。
安全對我來說更重要。我們是否可以用basicHttpBinding來實現ssl或者只有wsHttpbinding是安全的東西。如果我們可以在basicHttpBinding中使用ssl,那麼basicHttp和wsHttp Bindings會有什麼顯着的性能差異。 – 2010-10-05 05:12:42
是否可以實現沒有SSL或https://的WSHttpBinding? – 2013-10-07 14:54:56
@MuraliMurugesan:可能很晚,但對於其他人閱讀:是的,這是可能的 - 只需使用安全模式:'消息'。 Message Security提供了端到端的獨立於傳輸的安全性。 – 2014-04-02 14:34:46