回覆列表
  • 1 # 使用者566759068971

    socket是TCP/IP程序間通訊的底層實現(當然,socket只是ipc中的一種,此外還有訊息佇列、訊號燈、共享記憶體等很多手段)。

    http(s)是在socket之上封裝的一種上層通訊協議,其特點是:

    服務端監聽通訊,被動提供服務;客戶端主動向服務端發起連線請求,建立起通訊。

    每一次互動都是:客戶端主動發起請求(request),服務端被動應答(response)。

    服務端不能主動向客戶端推送資料。

    通訊的資料是基於文字格式的。二進位制資料(比如圖片等)要利用base64等手段轉換為文字後才能傳輸。

    websocket也是在socket之上封裝的一種上層通訊協議,其特點是:

    websocket通訊的建立階段是依賴於http協議的。最初的握手階段是http協議,握手完成後就切換到websocket協議,並完全與http協議脫離了。

    建立通訊時,也是由客戶端主動發起連線請求,服務端被動監聽。

    通訊一旦建立連線後,通訊就是“全雙工”模式了。也就是說服務端和客戶端都能在任何時間自由得傳送資料,非常適合服務端要主動推送實時資料的業務場景。

    互動模式不再是“請求-應答”模式,完全由開發者自行設計通訊協議。

    通訊的資料是基於“幀(frame)”的,可以傳輸文字資料,也可以直接傳輸二進位制資料,效率高。當然,開發者也就要考慮封包、拆包、編號等技術細節。

  • 中秋節和大豐收的關聯?
  • 怎樣給男朋友發簡訊?