區(qū)別:
HTTP協(xié)議是基于TCP連接的,是應(yīng)用層協(xié)議,主要解決如何包裝數(shù)據(jù)。Socket是對TCP/IP協(xié)議的封裝,Socket本身并不是協(xié)議,而是一個調(diào)用接口(API),通過Socket,我們才能使用TCP/IP協(xié)議。
HTTP連接:短連接,客戶端向服務(wù)器發(fā)送一次請求,服務(wù)器響應(yīng)后連接斷開,節(jié)省資源。服務(wù)器不能主動給客戶端響應(yīng)(除非采用HTTP長連接技術(shù)),iPhone主要使用類NSURLConnection。
Socket連接:長連接,客戶端跟服務(wù)器端直接使用Socket進行連接,沒有規(guī)定連接后斷開,因此客戶端和服務(wù)器段保持連接通道,雙方可以主動發(fā)送數(shù)據(jù),一般多用于游戲.Socket默認(rèn)連接超時時間是30秒,默認(rèn)大小是8K(理解為一個數(shù)據(jù)包大小)。