Socket、Http、TCP/IP、UDP的联系与区别
HTTP協議:簡單對象訪問協議,對應于應用層??,HTTP協議是基于TCP連接的
tcp協議:????對應于傳輸層
ip協議:?????對應于網絡層?
TCP/IP是傳輸層協議,主要解決數據如何在網絡中傳輸;而HTTP是應用層協議,主要解決如何包裝數據。
Socket是對TCP/IP協議的封裝,Socket本身并不是協議,而是一個調用接口(API),通過Socket,我們才能使用TCP/IP協議。
?
http連接:http連接就是所謂的短連接,即客戶端向服務器端發送一次請求,服務器端響應后連接即會斷掉;
socket連接:socket連接就是所謂的長連接,理論上客戶端和服務器端一旦建立起連接將不會主動斷掉;但是由于各種環境因素可能會是連接斷開,比如說:服務器端或客戶端主機down了,網絡故障,或者兩者之間長時間沒有數據傳輸,網絡防火墻可能會斷開該連接以釋放網絡資源。所以當一個socket連接中沒有數據的傳輸,那么為了維持連接需要發送心跳消息~~具體心跳消息格式是開發者自己定義的
?
Socket和http協議都可以實現數據傳輸,但兩種傳輸方式有什么??各自的特點,和缺點,如何選擇合適的傳輸方式。
1?數據傳輸方式
1.1??Socket傳輸的定義和其特點
???所謂socket通常也稱作"套接字",實現服務器和客戶端之間的物理連接,并進行數據傳輸,主要有UDP和TCP兩個協議。Socket處于網絡協議的傳輸層。
???UDP協議:廣播式數據傳輸,不進行數據驗證,不是面向連接的協議
???TCP協議:傳輸控制協議,一種面向連接的協議,給用戶進程提供可靠的全雙工的字節流,
?
????TCP---傳輸控制協議,提供的是面向連接、可靠的字節流服務。當客戶和服務器彼此交換數據前,必須先在雙方之間建立一個TCP連接,之后才能傳輸數據。TCP提供超時重發,丟棄重復數據,檢驗數據,流量控制等功能,保證數據能從一端傳到另一端。
????UDP---用戶數據報協議,是一個簡單的面向數據報的運輸層協議。UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,但是并不能保證它們能到達目的地。由于UDP在傳輸數據報前不用在客戶和服務器之間建立一個連接,且沒有超時重發等機制,故而傳輸速度很快
?
?
Socket?傳輸的特點:
???優點
????????????1)??傳輸數據為字節級,傳輸數據可自定義,數據量小(對于手機應用講:費用低)
傳輸數據時間短,性能高
適合于客戶端和服務器端之間信息實時交互
可以加密,數據安全性強
?
???缺點:
需對傳輸的數據進行解析,轉化成應用級的數據
對開發人員的開發水平要求高
相對于Http協議傳輸,增加了開發量
?
1.2??基于Http協議傳輸的定義和其特點
???????目前基于http協議傳輸的主要有http協議?和基于http協議的Soap協議(web?service),常見的方式是?http?的post?和get?請求,web?服務。
?
基于http協議的傳輸特點
???優點:
基于應用級的接口使用方便
程序員開發水平要求不高,容錯性強
???缺點:
傳輸速度慢,數據包大(Http協議中包含輔助應用信息)
如實時交互,服務器性能壓力大。
數據傳輸安全性差
?
2?各數據傳輸方式的適用范圍
?2.1?Socket傳輸適用范圍
?基于Socket傳輸的特點:Socket?傳輸方式適合于對傳輸速度,安全性,實時交互,費用等要求高的應用中,如網絡游戲,手機應用,銀行內部交互等
?
?2.2?基于Http協議傳輸的適用范圍
???????基于http協議傳輸的特點:基于http協議傳輸方式適合于對傳輸速度,安全性?要求不是很高,且需要快速開發的應用。如公司OA系統,互聯網服務等。
?
轉自:http://blog.csdn.net/xyylchq/article/details/7660915
??????????http://my.oschina.net/u/556624/blog/71484
轉載于:https://www.cnblogs.com/xingwu/p/3706389.html
總結
以上是生活随笔為你收集整理的Socket、Http、TCP/IP、UDP的联系与区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图床失效了?也许你应该试试这个工具
- 下一篇: 吸尘车-真空吸尘车:真空吸尘车