1. 程式人生 > >socket和http間的區別

socket和http間的區別

HTTP協議:簡單物件訪問協議,對應於應用層  ,HTTP協議是基於TCP連線的

tcp協議:    對應於傳輸層

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

Socket是對TCP/IP協議的封裝,Socket本身並不是協議,而是一個呼叫介面(API),通過Socket,我們才能使用TCP/IP協議。

http連線:http連線就是所謂的短連線,即客戶端向伺服器端傳送一次請求,伺服器端響應後連線即會斷掉;

socket連線:socket連線就是所謂的長連線,理論上客戶端和伺服器端一旦建立起連線將不會主動斷掉;但是由於各種環境因素可能會是連線斷開,比如說:伺服器端或客戶端主機down了,網路故障,或者兩者之間長時間沒有資料傳輸,網路防火牆可能會斷開該連線以釋放網路資源。所以當一個socket連線中沒有資料的傳輸,那麼為了維持連線需要傳送心跳訊息~~具體心跳訊息格式是開發者自己定義的