实时应用技术小结:Ajax Polling, Ajax Long Polling, Websockets, Server-Sent Events (SSE) , Comet

翻译自 Stack Overflow 的一个回答,原文链接 (部分专业词汇翻译不是太准确,还望指正)。

正文:

这里的 Client(客户端)是浏览器,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?

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页