翻譯自 Stack Overflow 的一個回答,原文鏈接 (部分專業詞彙翻譯不是太準確,還望指正)。
正文:
這裏的 Server(客戶端)是瀏覽器,Server(服務器)是承載網站的 Web 服務器。
客戶端向服務器請求網頁;
服務器計算響應;
服務器向客戶端發送響應。
(Ajax:異步 JavaScript 和 XML,是一種創建交互、快速動態網頁應用的網頁開發技術。)
客戶端向服務器請求網頁(同 Regular HTTP);
客戶端接收到請求的網頁,並在頁面上執行 JavaScript,以固定的時間間隔(比如 0.5s)向服務器請求一個文件;
服務器計算每個響應並將其送回,就像常規的 HTTP 業務一樣。
客戶端向服務器請求網頁(同 Regular HTTP);
客戶端接收請求的網頁,並在請求服務器文件的頁面上執行 JavaScript;
服務器不會立即響應所請求的信息,而是會等待,直到有可用的新信息;
當有新的信息可用時,服務器響應新信息;
客戶端接收到新的信息並立即向服務器發送另一個請求,重新啓動流程。
客戶端向服務器請求網頁(同 Regular HTTP);
客戶端接收請求的網頁,並在頁面上執行 JavaScript,從而建立一個服務器連接;
當有新信息可用時,服務器向客戶端發送一個事件。
客戶端向服務器請求網頁(同 Regular HTTP);
客戶端接收請求的網頁,並在頁面上執行 JavaScript,從而建立一個服務器連接;
服務器和客戶端可以在新數據可用時互相發送消息。
Comet 是 HTML5 之前的技術集合,使用流和長輪詢實現實時應用。
原文鏈接:What are Long-Polling, Websockets, Server-Sent Events (SSE) and Comet?