Socket請求和Http請求的各自特色、區別及適用場景 (轉)

http://blog.csdn.net/hexinli/article/details/50500316web

Socket實現服務器與客戶端之間的物理鏈接,並進行數據傳輸。主要有TCP/UDP兩個協議。Socket處於網絡協議的傳輸層。
TCP:傳輸控制協議,面向鏈接的的協議,穩定可靠。當客戶和服務器彼此交換數據前,必須先在雙方之間創建一個TCP鏈接,以後才能傳輸數據。
UDP:廣播式數據傳輸,UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,可是並不能保證它們能到達目的地。因爲UDP在傳輸數據報前不用在客戶和服務器之間創建一個鏈接,且沒有超時重發等機制,故而傳輸速度很快。
優勢:
1.傳輸數據爲字節級,傳輸數據可自定義,數據量小。相應的移動端開發,手機費用低
 2.傳輸數據時間短,性能高
 3.適合C/S之間信息實時交互
 4.能夠加密,數據安全性高
缺點:
1.須要對傳輸的數據進行解析,轉化爲應用級的數據
2.對開發人員的開發水平要求高
3.相對於Http協議傳輸,增長了開發量

Http請求主要有http協議,基於http協議的soap協議,常見的http數據請求方式有get和post,web服務

優勢:
1.基於應用級的接口使用方便
 2.要求的開發水平不高,容錯性強
缺點:
1.傳輸速度慢,數據包大。
2.如實現實時交互,服務器性能壓力大
3.數據傳輸安全性差

HTTP協議:簡單對象訪問協議,對應於應用層  ,HTTP協議是基於TCP鏈接的安全

tcp協議:    對應於傳輸層服務器

ip協議:     對應於網絡層 
TCP/IP是傳輸層協議,主要解決數據如何在網絡中傳輸;而HTTP是應用層協議,主要解決如何包裝數據。網絡

Socket是對TCP/IP協議的封裝,Socket自己並非協議,而是一個調用接口(API),經過Socket,咱們才能使用TCP/IP協議。socket

 

http鏈接:http鏈接就是所謂的短鏈接,即客戶端向服務器端發送一次請求,服務器端響應後鏈接即會斷掉tcp

socket鏈接:socket鏈接就是所謂的長鏈接,理論上客戶端和服務器端一旦創建起鏈接將不會主動斷掉;可是因爲各類環境因素可能會是鏈接斷開,好比說:服務器端或客戶端主機down了,網絡故障,或者二者之間長時間沒有數據傳輸,網絡防火牆可能會斷開該鏈接以釋放網絡資源。因此當一個socket鏈接中沒有數據的傳輸,那麼爲了維持鏈接須要發送心跳消息~~具體心跳消息格式是開發者本身定義的post



Socket適用場景:網絡遊戲,銀行交互,支付。
http適用場景:公司OA服務,互聯網服務。
相關文章
相關標籤/搜索