Ajax Polling, Ajax Long Polling, Websockets, Server-Sent Events (SSE) , Comet 概念理解

翻譯自 Stack Overflow 的一個回答,原文鏈接 (部分專業詞彙翻譯不是太準確,還望指正)。

正文:

這裏的 Server(客戶端)是瀏覽器,Server(服務器)是承載網站的 Web 服務器。

一、Regular HTTP:(常規的 HTTP)

  1. 客戶端向服務器請求網頁;

  2. 服務器計算響應;

  3. 服務器向客戶端發送響應。

在這裏插入圖片描述

二、Ajax Polling:(Ajax 輪詢)

(Ajax:異步 JavaScript 和 XML,是一種創建交互、快速動態網頁應用的網頁開發技術。)

  1. 客戶端向服務器請求網頁(同 Regular HTTP);

  2. 客戶端接收到請求的網頁,並在頁面上執行 JavaScript,以固定的時間間隔(比如 0.5s)向服務器請求一個文件;

  3. 服務器計算每個響應並將其送回,就像常規的 HTTP 業務一樣。

在這裏插入圖片描述

三、Ajax Long Polling:(Ajax 長輪詢)

  1. 客戶端向服務器請求網頁(同 Regular HTTP);

  2. 客戶端接收請求的網頁,並在請求服務器文件的頁面上執行 JavaScript;

  3. 服務器不會立即響應所請求的信息,而是會等待,直到有可用的新信息;

  4. 當有新的信息可用時,服務器響應新信息;

  5. 客戶端接收到新的信息並立即向服務器發送另一個請求,重新啓動流程。

在這裏插入圖片描述

四、HTML5 Server Sent Events (SSE) / EventSource:()

  1. 客戶端向服務器請求網頁(同 Regular HTTP);

  2. 客戶端接收請求的網頁,並在頁面上執行 JavaScript,從而建立一個服務器連接;

  3. 當有新信息可用時,服務器向客戶端發送一個事件。

在這裏插入圖片描述

五、HTML5 Websockets:

  1. 客戶端向服務器請求網頁(同 Regular HTTP);

  2. 客戶端接收請求的網頁,並在頁面上執行 JavaScript,從而建立一個服務器連接;

  3. 服務器和客戶端可以在新數據可用時互相發送消息。

在這裏插入圖片描述

六、Comet:

Comet 是 HTML5 之前的技術集合,使用流和長輪詢實現實時應用。

原文鏈接:What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet?