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