API - 定義
API,應用程序接口的縮寫,是一組用于構建軟件應用程序的例程,協議和工具.
一些重要的功能是 :
API指定軟件組件應如何交互,以及在編程圖形時應使用API用戶界面(GUI)組件.
一個好的API可以通過提供所有構建塊來更容易地開發程序.
通常在HTTP上運行的REST通常用于移動應用程序,社交網站,mashup工具和自動化業務流程.
REST風格強調通過有限數量的操作(動詞)來增強客戶端和服務之間的交互.
通過分配提供靈活性資源;他們自己獨特的統一資源標識符(URI).
REST避免歧義,因為每個動詞都有特定含義(GET,POST,PUT和DELETE)
Web Socket的優點
Web Socket解決了REST的一些問題,或者一般的HTTP :
雙向
HTTP是一種單向協議,客戶端始終發起請求.服務器處理并返回響應,然后客戶端使用它. Web Socket是一種雙向協議,其中沒有預定義的消息模式,例如請求/響應.客戶端或服務器可以向另一方發送消息.
完全雙工
HTTP允許請求消息從客戶端發送到服務器然后服務器向客戶端發送響應消息.在給定時間,客戶端正在與服務器通信,或者服務器正在與客戶端通信. Web Socket允許客戶端和服務器相互獨立通信.
單個TCP連接
通常,為一個新的TCP連接啟動HTTP請求并在收到響應后終止.需要為另一個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上定義.
免責聲明:以上內容(如有圖片或視頻亦包括在內)有轉載其他網站資源,如有侵權請聯系刪除