本文摘自原文:https://www.cnblogs.com/111testing/p/6581062.html
1、socket
定義:socket也稱作"套接字",實現服務器和客戶端之間的物理連接,並進行數據傳輸。
協議:主要有udp和tcp兩個協議,處於網絡協議的傳輸層。
優點:1) 傳輸數據爲字節級,傳輸數據可自定義,數據量小(對於手機應用講:費用低)。
2) 傳輸數據時間短,性能高。
3) 適合於客戶端和服務器端之間信息實時交互。
4) 可以加密,數據安全性強。
缺點: 1) 需對傳輸的數據進行解析,轉化成應用級的數據。
2) 對開發人員的開發水平要求高。
3) 相對於http協議傳輸,增加了開發量。
適用範圍:socket 傳輸方式適合於對傳輸速度,安全性,實時交互,費用等要求高的應用中,如網絡遊戲,手機應用,銀行內部交互等。
2、http
定義:常見於B/S架構前後臺數據交互,常見的方式是 http 的 post 和 get 請求。
協議:基於http,處於網絡協議的應用層。
優點: 1) 基於應用級的接口使用方便。
2) 程序員開發水平要求不高,容錯性強。
缺點: 1) 傳輸速度慢,數據包大(http協議中包含輔助應用信息)。
2) 如實時交互,服務器性能壓力大。
3) 數據傳輸安全性差。
適用範圍:基於http協議傳輸方式適合於對傳輸速度,安全性要求不是很高,且需要快速開發的應用。如公司oa系統,互聯網服務等。
3、Web Service
定義:採用SOAP協議的通信標準,SOAP協議基於XML語言,採用 http 傳輸通信(簡單講 Web Service = http + xml)。
協議:採用SOAP協議,基於http,處於網絡協議的應用層。
優點: 1) 不需要針對數據流的發送和接收進行處理,是一種跨平臺的面向對象遠程調用技術。
2) 接口支持面向對象,Web Service會將對象進行序列化後通過流傳輸。
3) 走http協議,一般不會被防火牆屏蔽。
缺點: 1) webservice要經過兩次序列化,所以導致其傳輸速度慢。
2) 其餘同http缺點一樣。
適用範圍:WebService不需要針對數據流的發送和就收進行處理,是一種跨平臺的面向對象遠程調用技術。
總結:http 協議都是對 socket 的再一次封裝,socket 是基於傳輸層的,所以socket 通信的即時性比http好,適合傳輸大數據量的數據,但是開發成本高,相較於http 難度更大。 http 數據傳輸需要服務器支撐,開發難度小,適用於 B/S 架構。 Web Service 基於http,採用 XML的形式,跨平臺行更好,兼容性更強。