Webservice理解:Socket與Webservice的區別
Socket 與 Webservice 的區別
socket是一種協議,採用tcp或udp協議通訊。
Tcp、udp屬於網路層,上邊各層的應用都需要我們自己實現,例如埠的定義,資料包的定義,資料包的加密解密等。
webservice是一種服務,採用HTTP協議通訊,Soap作為資料格式。
HTTP協議屬於應用層,通過伺服器才可以釋出,這樣內部定義的埠,資料包,加解密都做好了,可以直接使用。
webservice基於HTTP協議,因此可以利用現有非常成熟的Web叢集來提供高負載,同比之下 socket就非常難。
網路七層協議從低到高:
1、物理層(Physical Layer)、
2、資料鏈路層(Data Link Layer)、
3、網路層(Network Layer)、
4、傳輸層(Transport Layer)、
5、會話層(Session Layer)、
6、表示層(Presentation Layer)、
7、應用層(Application Layer)
webservice一般分為http webservice ,soap webservice兩種,都是基於http通訊協議的,一般返回xml格式的資料,所以也可以叫做xml webservice.
http webservice 通過get post 兩種方法來呼叫遠端的資料服務,適合簡單引數的傳遞(get 直接在url裡帶上引數);soap webservice通過soap協議傳輸資料,soap是基於xml標準的,也是就說可以用xml結構的資料來傳輸引數,這樣引數型別可以很複雜,處理遠端返回的xml資料時也更方便.
其實soap協議也是基於http協議的.
webservice離不開web伺服器(apache),web伺服器是一個在公網上提供http通訊的伺服器.webservice 一般都建立在web伺服器上,以供別人呼叫.
socket 是基於傳輸層的,http基於應用層,socket是一切通過埠通訊的基礎(包括http),http://baike.baidu.com/view/13870.htm
使用中,http常用於b/s通訊,如web伺服器就是用http做傳輸協議的,socket用於c/s(還有現在的富客戶端),應用伺服器中常用.socket穿防火牆有問題,而http幾乎可以穿過任何防火牆(屏80的不多吧),socket通訊的即時性比http好.