Http、Socket和WebService协议之间的区别
?
?
1 數據傳輸方式
1.1 socket傳輸的定義和其特點
? ? 所謂socket通常也稱作"套接字",實現服務器和客戶端之間的物理連接,并進行數據傳輸,主要有udp和tcp兩個協議。socket處于網絡協議的傳輸層。
? ? udp協議:廣播式數據傳輸,不進行數據驗證
? ? tcp協議:傳輸控制協議,一種面向連接的協議,給用戶進程提供可靠的全雙工的字節流。
? ?socket傳輸的特點:
? ?優點
? ?1) 傳輸數據為字節級,傳輸數據可自定義,數據量小(對于手機應用講:費用低)
? ?2) 傳輸數據時間短,性能高
? ?3) 適合于客戶端和服務器端之間信息實時交互
? ?4) 可以加密,數據安全性強
? ?缺點:
? ?1) 需對傳輸的數據進行解析,轉化成應用級的數據
? ?2) 對開發人員的開發水平要求高
? ?3) 相對于http協議傳輸,增加了開發量
?socket傳輸適用范圍
? 基于socket傳輸的特點 :?socket 傳輸方式適合于對傳輸速度,安全性,實時交互,費用等要求高的應用中,如網絡游戲,手機應用,銀行內部交互等
?
1.2 基于http協議傳輸的定義和其特點
? ?目前基于http協議傳輸的主要有http協議?和基于http協議的soap協議(web service),常見的方式是 http 的post 和get 請求,web 服務。
? ?基于http協議的傳輸特點
? ?優點:
? ?1) 基于應用級的接口使用方便
? ?2) 程序員開發水平要求不高,容錯性強
? ?缺點:
? ?1) 傳輸速度慢,數據包大(http協議中包含輔助應用信息)
? ?2) 如實時交互,服務器性能壓力大。
? ?3) 數據傳輸安全性差
? ?基于http協議傳輸的適用范圍
? ?基于http協議傳輸的特點:基于http協議傳輸方式適合于對傳輸速度,安全性要求不是很高,且需要快速開發的應用。如公司oa系統,互聯網服務等
?
WebService與Socket的區別
區別1.
Socket是基于TCP/IP的傳輸層協議。
WebService是基于HTTP協議傳輸數據的,HTTP是基于TCP的應用層協議。
區別2.
WebService采用了基于HTTP的SOAP協議傳輸數據,接口支持面向對象,最終WebService會將對象進行序列化后通過流傳輸。
Socket接口直接通過流進行傳輸,不支持面向對象。
Socket在傳輸層,WebService在應用層。。http 協議基于socket,此外,web service基于http協議和soap。
【結論】
WebService采用SOAP協議進行傳輸,底層是基于Socket通信的。
WebService不需要針對數據流的發送和就收進行處理,是一種跨平臺的面向對象遠程調用技術。
?socket和webservice都有跨平臺的優點,但是:
? ? ? ??socket偏底層,效率高,但是開發成本大。
? ? ? ? webservice效率低,但是開發成本低廉。
【Socket和WebService應用場景】
[ socket ]
socket通信的即時性比http好。socket 是基于傳輸層的,http基于應用層,socket是一切通過端口通信的基礎(包括http)
Socket處于是OSI 7層協議中的第四層(傳輸層) ?Socket僅僅是傳輸層抽象在OS基礎上的一個接口而已。
適用于傳輸大數據量的數據。
缺點:由于傳輸的數據需要手動解析,socket通信的接口協議需要自定義,比如:自定義一種字符串拼接的格式,或者自定義的XML數據,自定義的麻煩之處在于接口調用方法和接口服務端需要相互討論確定接口的協議內容,不方便。
優點:適合傳輸大數據量的數據。
常重要的SOAP是應用層的一個協議,而SOAP通常綁定的Http協議也是第七層的一種協議。Socket效率高,但容易被防火墻屏蔽。
socket,提供了tcp/ip或者udp的通信的實現,如果做標準的服務器,比如下載服務器;或者語音通信的程序,或者視頻,文件傳輸……這些只能用socket。
單純用socket寫會很煩的,你要處理各種東西,協議的編解碼等等,所以這種情況下推薦mina,netty或者grizzly。
?
[ WebService ]
WebService遵循標準的SOAP協議,SOAP協議的內容格式固定,SOAP協議傳遞的內容是XML數據,由于WebService是基于HTTP的,所以簡單理解SOAP=HTTP+XML,因為WebService要經過兩次序列化,所以導致其傳輸速度慢,適用于沒有性能要求且數據傳輸量小的場景,推薦在公開接口上使用WebService。
webservice基于HTTP協議,因此可以利用現有非常成熟的Web集群來提供高負載,同比之下 socket就非常難。
webservice離不開web服務器(apache),web服務器是一個在公網上提供http通信的服務器.webservice 一般都建立在web服務器上,以供別人調用。
WebService效率差點,走http協議,一般不會被防火墻屏蔽。
webservice,基于http協議,以xml為載體的通信方式。
? ? 好處:一直觀,二標準,也方便異構系統的交互。
? ? 如果想提供對外的業務訪問的接口,可能需要瀏覽器,各種語言的客戶端等各種異構系統訪問,是首選。
?
?
我覺得把socket和http、webservices等等放在一起對比不是很合適,所謂http的都是對socket進行了一次包裝而已,后者更加底層。
轉載于:https://www.cnblogs.com/zhangbao003/p/9340609.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Http、Socket和WebService协议之间的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装rpm报错:requires Rub
- 下一篇: 使用frp进行内网穿透的实例