Websocket API

API是應用程式介面的縮寫,是一組用於構建軟體應用程式的例程,協議和工具。
一些重要的功能是 -

  • API指定軟體組件應如何交互,以及在編寫圖形用戶介面(GUI)組件時應使用API。
  • 一個好的API可以通過提供所有構建塊來更輕鬆地開發程式。
  • REST通常在HTTP上運行,通常用於移動應用程式,社交網站,mashup工具和自動化業務流程。
  • REST風格強調通過使用有限數量的操作(動詞)來增強客戶端和服務之間的交互。
  • 通過分配資源提供靈活性; 他們自己獨特的統一資源識別字(URI)。
  • REST避免歧義,因為每個動詞都有特定含義(GET,POST,PUT和DELETE)

Websocket的優點

Web Socket解決了REST或HTTP的一些問題 -

雙向
HTTP是一種單向協議,客戶端始終發起請求。伺服器處理並返回回應,然後客戶端使用它。Websocket是一種雙向協議,其中沒有預定義的消息模式,例如請求/回應。客戶端或伺服器可以向另一方發送消息。

全雙工
HTTP允許請求消息從客戶端轉到伺服器,然後伺服器向客戶端發送回應消息。在給定時間,客戶端正在與伺服器通信,或者伺服器正在與客戶端通信。Websocket允許客戶端和服務器相互獨立地進行通信。

單TCP連接
通常,為HTTP請求啟動新的TCP連接,並在收到回應後終止。需要為另一個HTTP請求/回應建立新的TCP連接。對於Web Socket,使用標準HTTP升級機制升級HTTP連接,並且客戶端和服務器通過相同的TCP連接進行通信以進行Web Socket連接的生命週期。

下麵給出的圖表顯示了為恒定有效負載大小處理N個消息所花費的時間(以毫秒為單位)。

以下是為此圖表提供的原始數據 -

上面給出的圖表和表格顯示REST開銷隨著消息數量的增加而增加。這是真的,因為需要啟動和終止許多TCP連接,並且需要發送和接收許多HTTP頭。

最後一列特別顯示了完成REST請求所需時間的倍增因數。
第二個圖顯示了通過改變有效負載大小來處理固定數量的消息所花費的時間。
有效負載大小

以下是為此圖表提供的原始數據 -

此圖表顯示處理REST端點的請求/回應的增量成本是最小的,並且大部分時間花費在連接啟動/終止和遵守HTTP語義上。

結論
Web Socket是一種低級協議。包括簡單的請求/回應設計模式,如何創建/更新/刪除資源需求,狀態代碼等都要建立在它之上。所有這些都為HTTP定義良好。

Web Socket是一種有狀態協議,而HTTP是無狀態協議。Web套接字連接可以在單個伺服器上垂直擴展,而HTTP可以水準擴展。Web Socket水準擴展有一些專有解決方案,但它們不是基於標準。HTTP附帶了許多其他好東西,如緩存,路由和多路複用。所有這些都需要在Web Socket之上定義。


上一篇: WebSocket伺服器工作 下一篇: Websocket與伺服器通信