1. 程式人生 > >Webservice理解:Socket與Webservice的區別

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好.